Проблемы XML XPath SelectSingleNode - PullRequest
2 голосов
/ 01 августа 2011

Я пытаюсь выбрать определенные узлы внутри дочерних узлов основного документа.

XmlNodeList nodes = xml.SelectNodes("//RECORD");

for (int i = 0; i < nodes.Count; i++)
{           
     Console.WriteLine("Time: " + nodes[i].SelectSingleNode("//content2").InnerText);
}

То, что это в конечном итоге делает, заключается в том, что все один узел content2 имеет одинаковое значение, но в XmlDocument,значение content2 для каждой записи увеличивается.

Если я просматриваю NodeList, то каждый узел content2 увеличивается, например, с 1 до 32.

Почему SelectSingleNode возвращает один и тот же узел?Как заставить его выбрать его у ребенка?

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

Опустите символ "//" из строки XPATH. Это будет выглядеть внутри выбранного XML вместо всего документа.

1 голос
/ 01 августа 2011

Это потому, что вы используете // content2 в XPATH для узлов [i] .SelectSingleNode.// в XPATH означает просмотр всех экземпляров на любом уровне.Вы должны сделать XPATH из // RECORD / content2, а затем зациклить эти узлы.

...