Oto doc przykład XML, który pasuje do jednego jestem uzyskiwanie informacji od:C# XPath help - Expression nie działa
<?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>
Oto mój kod, aby uzyskać wszystkie książki z gatunku suspensu:
//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
}
Próbowałem kilku kwerend, w tym Products/Books[Genre = \"Suspense\"]
, Products/Books
, ./Books
i Books
. Mój xIter zawsze ma zero przedmiotów.
Jestem nowy w XPath, więc jestem pewien, że to naprawdę prosty błąd, ale może nie. Wiem, że mogę uzyskać DataSet z tabelami [Movies] i [Books] poza tym plikiem XML przy użyciu myDataSet.ReadXml(myXmlPathString);
, więc plik XML nie jest uszkodzony. Jeśli to pomaga każdemu.
Moje pytanie ... co robię źle?
Czy próbowałeś pojedynczych cytatów? np. Gatunek = \ "Napięcie"? – funkymushroom
znacznik końcowy ma zmienioną obudowę – Rozuur
@Rozuur - Przepraszam, literówka. Naprawione. @Funkymushroom - Nie zrobiłem. Spróbuję tego. –