我嘗試解析一個大的XML文件,並且我使用了很多XPath表達式的相對路徑。XPath表達式評估錯誤
現在我遇到了.net XPath評估問題。
這裏一個小例子,這也解釋了我的問題:
<?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>
這裏是代碼:
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);
}
我收到以下錯誤信息: 附加信息:「//價格/。 。[year ='2005']'有一個無效的標記。
對我來說,它似乎是一個有效的XPath表達式,因爲像XMLSpy這樣的其他工具可以成功評估表達式。
.NET不支持XPath 2.0。 –
@MatíasFidemraizer說明了很多,謝謝 – exagi
如果年前來價格你可以使用'/ /價格[先前 - 兄弟::年= 2005']。 – Pawel