需要帮助选择第二个子节点及其在C#中使用XPath的子节点

时间:2010-07-02 09:59:03

标签: c# xml xpath

我正在尝试从根目录中选择第二个子节点以及所有与XML相似的子节点:

<root>
   <SET>
      <element>
      <element>
   </SET>
   <SET>
      <element>
      <element>
   </SET>
<root>

我是第二个节点中的所有标签,任何帮助都将不胜感激!

我正在使用C#。我尝试了XPath / SET [1]但是没有看到帮助!

非常感谢!

C

3 个答案:

答案 0 :(得分:6)

x/y[1] : 
     The first <y> child of each <x>. This is equivalent to the expression in the next row.

x/y[position() = 1] :The first <y> child of each <x>.

试试这个:

string xpath = "/root/set[2]";
XmlNode locationNode = doc.SelectSingleNode(xpath); 

string xpath = "/root/set[position() = 2]";
XmlNode locationNode = doc.SelectSingleNode(xpath); 

答案 1 :(得分:1)

XPath不是基于零索引的,它是一个索引的。

您想:root/set[2]

答案 2 :(得分:0)

以下是我的解决方案:

XmlDocument doc = new XmlDocument();

doc.Load(@"C:\testing.xml");

XmlNodeList sets = doc.GetElementsByTagName("SET");

//Show the value of first set's first element
Console.WriteLine(sets[0].ChildNodes[0].InnerText);

//Show the value of second set's second element
Console.WriteLine(sets[1].ChildNodes[1].InnerText);