Нужна помощь в выборе второго дочернего узла, и это дети с XPath в C # - PullRequest
1 голос
/ 02 июля 2010

Я пытаюсь выбрать второй дочерний узел из корня и все его дочерние элементы из XML, который выглядит примерно так:

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

Я после всех тегов во втором узле, любая помощь будет принята с благодарностью!

Я использую C #. Я попробовал XPath / SET [1], но это не помогло!

Большое спасибо!

C

Ответы [ 3 ]

6 голосов
/ 02 июля 2010
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 голос
/ 02 июля 2010

XPath не основан на нулевом индексе, он одноиндексный.

Вы хотите: root/set[2]

0 голосов
/ 03 августа 2017

Ниже мое решение:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...