He aquí un documento XML de ejemplo que coincide con la que yo estoy recibiendo información de:C# XPath ayuda - Expresión no funciona
<?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>
Aquí está mi código para obtener todos los libros con el género de suspenso:
//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
}
He intentado varias consultas incluyendo Products/Books[Genre = \"Suspense\"]
, Products/Books
, ./Books
y Books
. Mi xter siempre tiene cero elementos.
Soy nuevo en XPath, así que estoy seguro de que es un error muy simple, pero tal vez no. Sé que puedo obtener un DataSet con las tablas [Películas] y [Libros] fuera de este archivo XML usando myDataSet.ReadXml(myXmlPathString);
para que el archivo XML no esté dañado. Si eso ayuda a alguno.
Entonces, mi pregunta ... ¿qué estoy haciendo mal?
¿Has probado las comillas simples? es decir, Género = \ 'Suspense \'? – funkymushroom
etiqueta de cierre se cambió el estuche – Rozuur
@Rozuur - Disculpe, error. Arreglado. @funkymushroom - No lo hice. Probaré eso. –