我正在尝试使用 VB.NET 从 <itemnote>
中提取内部文本基于 name
<series>
的属性和 name
它的子元素的属性 <item>
.我可以提取名称属性,但我无法访问 <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
关于VB Net 中的 XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14034745/