5

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も使用してみましたが、どちらを使用するかがわかりません。どんな助けでも素晴らしいでしょう!乾杯。

4

1 に答える 1

1

ノードの参照を取得する必要があり、要素に<item>基づいて、と要素itemの名前属性の値を比較できます。parentchild

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
于 2012-12-26T05:47:29.930 に答える