Получить только первое значение из XPathNavigator? - PullRequest
2 голосов
/ 01 февраля 2012
var xml= @"<?xml version='1.0'?>
                 <bookstore>
                 <book genre=""3"">
                   <title>The Gorgias3</title>
                   <author>
                     <name>Plato3</name>
                   </author>
                   <price>3</price>
                 </book>
            <book genre=""4"">
                   <title>The Gorgias4</title>
                   <author>
                     <name>Plato4</name>
                   </author>
                   <price>4</price>
                 </book>
            </bookstore>";



XPathDocument docNav = new XPathDocument(new StringReader(xml));
XPathNavigator navigator = docNav.CreateNavigator();
XPathNodeIterator NodeIter = navigator.Select("/bookstore/book/title");

foreach (XPathNavigator selectedNode in NodeIter)
{
    Console.WriteLine(selectedNode.Name);
}

Как я могу получить доступ к первому /bookstore/book/title" ребенку и получить его значение.

Я не хочу повторять и прерывать цикл

результат должен быть "The Gorgias3"

p.s. я не хочу изменять выражение xpath с помощью первого фильтра.

Я хочу знать, как я могу это сделать с помощью c #.

1 Ответ

4 голосов
/ 01 февраля 2012

Использование:

var node = navigator.SelectSingleNode("/bookstore/book/title");

Console.WriteLine(node);
...