При выполнении кода:
XmlDocument document = new XmlDocument();
document.LoadXml("<Root><Node>Node1</Node><Node>Node2</Node><Node>Node3</Node></Root>");
foreach (XmlNode node in document.SelectNodes("//*[local-name()='Node']"))
{
Console.WriteLine(node.OuterXml);
Console.WriteLine(node.SelectSingleNode("//*[local-name()='Node']").InnerText);
}
Получается результат:
<Node>Node1</Node>
Node1
<Node>Node2</Node>
Node1
<Node>Node3</Node>
Node1
Почему метод SelectSingleNode
с выражением xpath
всегда возвращает Node1
?
Почему поиск осуществляется не в рамках узла у которого данный метод был вызван, а по всему документу?
Мне казалось есть узел, есть его содержимое, есть метод, вызываемый у этого узла, есть некая работа метода, связанная с этим узлом и вот результат, связанный с этим узлом.
Что я не понимаю и как это исправить, что бы результат зависел от текущего узла?
Вы ведь уже нашли нужные вам ноды, и перебираете их в цикле. Просто уберите повторный поиск:
XmlDocument document = new XmlDocument();
document.LoadXml("<Root><Node>Node1</Node><Node>Node2</Node><Node>Node3</Node></Root>");
foreach (XmlNode node in document.SelectNodes("//*[local-name()='Node']"))
{
Console.WriteLine(node.OuterXml);
Console.WriteLine(node.InnerText);
}
Если нужно искать в рамках текущей ноды, а не в рамках всего документа - не начинайте xpath с //
:
XmlDocument document = new XmlDocument();
document.LoadXml(
@"<Root>
<Node><a>Node1</a></Node>
<Node><a>Node2</a></Node>
<Node><a>Node3</a></Node>
</Root>");
foreach (XmlNode node in document.SelectNodes("//*[local-name()='Node']"))
{
Console.WriteLine(node.OuterXml);
Console.WriteLine(node.SelectSingleNode("a").InnerText);
}
<Node><a>Node1</a></Node>
Node1
<Node><a>Node2</a></Node>
Node2
<Node><a>Node3</a></Node>
Node3
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть веб-приложение на C#, в котором есть 3 выпадающих списка
Ловлю ошибку 404 в IIS название папки в URL дублируется Exception Requested URL:/test/test/LoginPageaspx Если удаляю с url один test все работает
С помощью чего можно создать вебсокет сервер с такими характеристиками? (С помощью чего, я имею ввиду, мб какие нибудь библиотеки есть которые...
У меня есть тип AType который реализует генерик-интерфейс IA<BType> Тип BType реализует интерфейс ICКак я могу проверить связан AType с IC или нет?