0

XPathNodeIterator オブジェクトを foreach しようとしています

    XPathNodeIterator xpCategories = GetCategories();

現在、xpCategories はこのような xml を保持しています

 <root>
  <category numberofproducts="0">
    <id>format</id>
    <name>Kopi/Print</name>
  </category>
  <category numberofproducts="1">
    <id>frankering</id>
    <name>Kopi/Print</name>
  </category>
  <category numberofproducts="0">
    <id>gardbøjler</id>
    <name>Møbler</name>
  </category>
  <category numberofproducts="0">
    <id>gardknager</id>
    <name>Møbler</name>
  </category>
  <category numberofproducts="0">
    <id>gardspejle</id>
    <name>Møbler</name>
  </category>

</root>

そして、ループ内の各カテゴリノード「id」を取得する必要があります。このようなことを試しました

foreach (char str in xpCategories.Current.Value)
    {
        xpCategories.MoveNext();
    }

しかし、役に立たない..誰かが私を正しい道に導くことができますか?

4

2 に答える 2

1
XPathNodeIterator xpCategories = GetCategories().Current.Select("/root/category/id");    
while (xpCategories.MoveNext())
    Console.WriteLine(xpCategories.Current.Value);
于 2013-08-02T08:54:22.920 に答える
1

これを試して:

  //Replace with your method to return the XML
  XPathDocument document = new XPathDocument("DemoXML.xml"); 
  //*****

  XPathNavigator navigator = document.CreateNavigator();

  XPathNodeIterator nodes = navigator.Select("/root/category/id");

  while (nodes.MoveNext())
      Console.WriteLine(nodes.Current.Value);

編集:

XPathNodeIterator xpCategories = GetCategories();
XPathNodeIterator xpCategoriesID = xpCategories.Current.Select("root/category/id");

while (xpCategoriesID.MoveNext())
    Console.WriteLine(xpCategoriesID.Current.Value);
于 2013-08-02T08:12:33.260 に答える