我正在尝试从根目录中选择第二个子节点以及所有与XML相似的子节点:
<root>
<SET>
<element>
<element>
</SET>
<SET>
<element>
<element>
</SET>
<root>
我是第二个节点中的所有标签,任何帮助都将不胜感激!
我正在使用C#。我尝试了XPath / SET [1]但是没有看到帮助!
非常感谢!
C
答案 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);