大きな XML ファイルを解析しようとしましたが、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);
}
次のエラー メッセージが表示されます。
XMLSpy などの他のツールがその式を正常に評価するため、私にとっては有効な XPath 式のように思えます。