У меня есть этот образец XML, сохраненный в books.xml:
<?xml version="1.0" encoding="utf-8" ?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>
An in-depth look at creating applications
with XML.
</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>
A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.
</description>
</book>
</catalog>
Я создал такой документ и навигатор:
var document = new XPathDocument(@"books.xml");
var navigator = document.CreateNavigator();
var books = navigator.Select("/catalog/book");
Я пытаюсь просмотреть узлы книги и проанализировать контекст узла. Я могу читать атрибуты, но не могу понять, как читать значения узла:
while (books.MoveNext())
{
var location = books.Current;
var book = new Book();
book.Id = location.GetAttribute("id", "");
// this line throws an exception.
book.Title = (string)location.Evaluate("title/text()") ;
}
Кто-нибудь, кто знает, что я пропустил из документации?
Пожалуйста, мне известно о методах синтаксического анализа XElement, XmlDocument и XmlTextReader, но мне нужно выяснить, как работает XPathNavigator, для сравнения производительности.
TIA.