解决XML的SelectNodes和SelectSingleNode方法返回空值问题

同事质检EPUB文档需要读取opf的内容,临时上网找了些XML相关代码研究。结果在获取某些节点一直无法正确实现,网上大部分条目也无法解决问题。

最后找到问题所在,如果使用非默认命名空间,需要添加相应的命名空间。

 代码如下 复制代码

XmlDocument xml = new XmlDocument();
//opfUrl为opf文件路径
xml.Load(opfUrl);
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xml.NameTable);
//http://www.idpf.org/2007/opf为该XML文档命名空间
nsMgr.AddNamespace("ns", "http://www.idpf.org/2007/opf");
//reference为节点名
XmlNodeList reference = xml.SelectNodes("//ns:reference", nsMgr);

时间: 2024-09-17 20:22:55

解决XML的SelectNodes和SelectSingleNode方法返回空值问题的相关文章

wp7解决xml文件两种有效方法

对于XML数据的解析,WP7平台并没有提供SAXParser和DOMParser这两个常用的解析器,如果你过去是开发Android应用的,你可能发现在Windows Phone 7上解析XML还需要.Net Framework中专有的,比如XMLReader和 LINQ to XML parser这两种方法.  1. XML Reader XmlReader解析速度比较快同时比较省内存,但是只读的无法修改XML的内容,同时没有缓存解析功能,在Android平台可以使用SAXParser类来解析,

C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍

原文:C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍 一. SelectNodes,SelectSingleNode总是返回NULL    下面以一个简单的xml为例: <?xml version="1.0"?> <message xmlns="http://www.mydomain.com/MyDataFeed" xmlns:xsi=http://www.w3.org/2001/XM

对象- vbs操作xml,selectSingleNode的返回值问题

问题描述 vbs操作xml,selectSingleNode的返回值问题 Set node = xml2Doc.selectSingleNode("aaaaa/bbbbb/ccccc") If(IsNull(node)) Then result = result ElseIf(node.getAttribute("enabled") = "true") Then result = result + fol.Path + "#"

JS实现兼容各浏览器解析XML文档数据的方法

  本文实例讲述了JS实现兼容各浏览器解析XML文档数据的方法.分享给大家供大家参考.具体分析如下: 网站上很多用JS解析XML文档的资料或多或少都有点问题, 以下是自己总结的代码,用来解析XML文档,兼容各个浏览器. parseXMLDOM.js代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

java实现Spring在XML配置java类的方法_java

1. 创建自己的bean文件:beans.xml <?xml version="1.0" encoding="UTF-8"?> <busi-beans> <beans> <bean id="SysHelloImpl" type="com.cxm.test.SysHello"> <desc>test</desc> <impl-class>com.

JS实现兼容各浏览器解析XML文档数据的方法_javascript技巧

本文实例讲述了JS实现兼容各浏览器解析XML文档数据的方法.分享给大家供大家参考.具体分析如下: 网站上很多用JS解析XML文档的资料或多或少都有点问题, 以下是自己总结的代码,用来解析XML文档,兼容各个浏览器. parseXMLDOM.js代码: /* * 纯JS解析XML文档(兼容各个浏览器) */ function parseXMLDOM(){ var _browserType = ""; var _xmlFile = ""; var _XmlDom = n

.NET更新Xml中CDATA内容的方法实例

这篇文章介绍了.NET更新Xml中CDATA内容的方法实例,有需要的朋友可以参考一下    假如 Xml 文件的内容如下: 1.XML 代码 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <net_lover>   <sitename><![CDATA[<h2>.NET 开发</h2>]]></sitename>   <si

iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法

转自:http://blog.csdn.net/xiaotanyu13/article/details/7711954 iOS上面对键盘的处理很不人性化,所以这些功能都需要自己来实现, 首先是点击return和屏幕隐藏键盘 这个首先引用双子座的博客 http://my.oschina.net/plumsoft/blog/42545,他的文章写的很好,对大家的理解很有好处. 在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但

asp.net-ASP.NET webservice方法返回求助

问题描述 ASP.NET webservice方法返回求助 省略部分xml代码 <GetUserResponse xmlns="http://tempuri.org/"> <GetUserResult> <xsd:schema>schema</xsd:schema>xml</GetUserResult> </GetUserResponse> 请问一下,这个返回代码中 xsd:schemaschema/xsd:sch