Voici un exemple de document XML qui correspond à celui dont je tire des informations :
<?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>
Voici mon code pour obtenir tous les livres du genre 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
}
J'ai essayé plusieurs requêtes dont Products/Books[Genre = \"Suspense\"]
, Products/Books
, ./Books
y Books
. Mon xIter a toujours zéro élément.
Je suis nouveau dans XPath, donc je suis sûr que c'est une erreur très simple, mais peut-être pas. Je sais que je peux obtenir un DataSet avec les tables [Movies] et [Books] à partir de ce fichier XML en utilisant la méthode suivante myDataSet.ReadXml(myXmlPathString);
donc le fichier XML n'est pas corrompu. Si cela peut vous aider.
Donc, ma question... qu'est-ce que je fais mal ?