Вот пример XML-документа, который соответствует тому, из которого я получаю информацию:
<?xml version="1.0" standalone="yes"?>
<Products xmlns="http://tempuri.org/Products.xsd">
<Movies>
<Title>Title1</Title>
<Language>English</Language>
</Movies>
<Movies>
<Title>Title2</Title>
<Language>English</Language>
</Movies>
<Movies>
<Title>Title3</Title>
<Language>French</Language>
</Movies>
<Books>
<Title>BTitle1</Title>
<Genre>Suspense</Genre>
</Books>
<Books>
<Title>BTitle2</Title>
<Genre>Suspense</Genre>
</Books>
<Books>
<Title>BTitle3</Title>
<Genre>SciFi</Genre>
</Books>
<Books>
<Title>BTitle4</Title>
<Genre>SciFi</Genre>
</Books>
</Products>
Вот мой код, чтобы получить все книги с жанром Suspense:
//Get state list using XPath
XPathDocument xDoc = new XPathDocument(xmlPath); //Path to my file
XPathNavigator xNav = xDoc.CreateNavigator();
string booksQuery = "Books[Genre = \"Suspense\"]";
XPathNodeIterator xIter = xNav.Select(booksQuery);
while (xIter.MoveNext())
{
//do stuff with xIter.Current
}
Я пробовал несколько запросов, включая Products/Books[Genre = \"Suspense\"]
, Products/Books
, ./Books
и Books
.В моем xIter всегда ноль предметов.
Я новичок в XPath, поэтому я уверен, что это действительно простая ошибка, но, возможно, нет.Я знаю, что могу получить DataSet с таблицами [Фильмы] и [Книги] из этого XML-файла, используя myDataSet.ReadXml(myXmlPathString);
, поэтому XML-файл не поврежден.Если это поможет.
Итак, мой вопрос ... что я делаю не так?