簡體   English   中英

VBNet中的XML解析

[英]XML Parsing in VBNet

我正在嘗試使用VB.NET根據<series>name屬性及其子元素<item>name屬性從<itemnote>提取innertext。 我可以提取名稱屬性,但我無法訪問<itemnote>

這是一些示例XML:

<?xml version="1.0" encoding="UTF-8"?>
<Products>
  <series name="HiTech" year="2000" country="United Kingdom">
    <item name="Robotic" collected="no">
    <itemnote>Exclusive UK Release</itemnote>
    </item>
     <item name="Future" collected="yes">
    <itemnote>LED Edition</itemnote>
    </item>
  </series>
  <series name="Neo" year="2003" country="United Kingdom">
    <item name="X Rated" collected="no">
    <itemnote>Red striped version</itemnote>
    </item>
     <item name="Cool Breeze" collected="no">
    <itemnote>Includes promo booklet</itemnote>
    </item>
  </series>
</Products>

到目前為止,我已嘗試使用帶有XDocument的遞歸循環,但我無法獲得除了所有<series><item>屬性的列表之外的任何內容。 我也嘗試過使用XPath和Linq,但我無法弄清楚如何按照我的意願制作其中任何一個。 任何幫助都會很棒! 干杯。

您需要獲取<item>節點的引用並基於item元素,您可以比較parent元素和child元素的名稱屬性的值。

Dim nameOfSeries = "HiTech"
Dim nameOfItem = "Future"

Dim result = doc.Descendants("item").Where(Function(p)
                               Return p.Parent.Attribute("name").Value = nameOfSeries And 
                                                p.Attribute("name").Value = nameOfItem
                               End Function)

IF result.Count Then
  For Each ele In result
    Console.WriteLine(ele.Element("itemnote").Value)
  Next
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM