Próbuję przeanalizować duży plik XML i używam wielu względnych ścieżek dla wyrażeń XPath.Błąd oceny wyrażenia XPath
Teraz mam problem z oceną XP .ath .net.
Oto mały przykład, który wyjaśnia mój problem:
<?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>
A oto kod:
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);
}
pojawia się następujący komunikat o błędzie: Dodatkowe informacje: „// Cena /. . [year = '2005'] 'ma nieprawidłowy token.
Wydaje mi się, że jest to poprawne wyrażenie XPath, ponieważ inne narzędzia, takie jak XMLSpy, pomyślnie oceniają to wyrażenie.
. NET nie obsługuje XPath 2.0. –
@ MatíasFidemraizer, który bardzo dużo tłumaczy, dziękuję – exagi
, jeśli rok jest przed ceną, możesz użyć '// price [previous-sibling :: year = '2005']'. – Pawel