我尝试解析一个大的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