





























XPath提供了一种方便的途径来供我们查找特定的XML元素或结点,以如下的XML片段为例:
1,查找所有book元素://book
2,查找id="bk104"的book元素://book[@id="bk104"]
3,查找书名为Midnight Rain的book元素://book[title="Midnight Rain"]
4,查找值为44.95的price元素://book/price[.="44.95"]
5,查找值为"bk104"的id属性://book/@id[.="bk104"]
在.NET下使用XPath也非常方便,见如下示例代码:
XmlDocument doc = new XmlDocument();
doc.Load("book.xml");
现在要从此文件中获取parameter[@name='database']的元素,使用如上的示例代码却不能找到想要的parameter元素。经过长时间的摸索调查,终于发现问题出在enterpriseLibrary.databaseSettings元素上,刚开始以为是该元素中间的“."所致,后经验证在元素中出现“."不会引起查找问题,最后发现该元素后附加了几个名称空间,问题就出在这里,在元素中有如下的名称空间:xmlns="http://www.microsoft.com/practices/enterpriselibrary/08-31-2004/data",这句话就暗示该元素的默认名称是:http://www.microsoft.com/practices/enterpriselibrary/08-31-2004/data,该元素及其所有该元素的子元素都属该名称空间管辖,该元素及其所有子元素的全称就是:名称空间:元素名称。所以在查找的XPath语句中只指定元素名称而不指定名称空间前缀是不能找到特定元素的。正确的代码如下:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。