Ich versuche, eine große XML-Datei zu analysieren, und ich verwende viele relative Pfad für die XPath-Ausdrücke.XPath Ausdruck Bewertungsfehler
Jetzt habe ich Probleme mit der .net XPath-Auswertung.
Hier ein kleines Beispiel, das mein Problem erklärt:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
</book>
</bookstore>
Und hier ist der Code:
static void Main(string[] args)
{
System.Xml.XmlDocument d = new System.Xml.XmlDocument();
d.Load(@"D:\simpleXml.xml");
System.Diagnostics.Trace.WriteLine(d.SelectSingleNode("//price/..[year=\'2005\']").Name);
}
bekomme ich folgende Fehlermeldung: Zusätzliche Informationen: ‚// Preis /. . [Jahr = '2005'] 'hat ein ungültiges Token.
Für mich scheint es ein gültiger XPath-Ausdruck zu sein, da andere Tools wie XMLSpy diesen Ausdruck erfolgreich auswerten.
.NET unterstützt XPath 2.0 nicht. –
@ MatíasFidemraizer, die eine Menge erklärt, danke – exagi
wenn das Jahr vor dem Preis kommt, könnte man '// price [previous-sibling :: year = '2005']' verwenden. – Pawel