同事质检EPUB文档需要读取opf的内容,临时上网找了些XML相关代码研究。结果在获取某些节点一直无法正确实现,网上大部分条目也无法解决问题。
最后找到问题所在,如果使用非默认命名空间,需要添加相应的命名空间。
	  
		|  代码如下 | 
		复制代码 | 
	  
	  
		| 
 XmlDocument xml = new XmlDocument(); 
//opfUrl为opf文件路径 
xml.Load(opfUrl); 
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xml.NameTable); 
//http://www.i**d*pf.org/2007/opf为该XML文档命名空间 
nsMgr.AddNamespace("ns", "http://www.***idpf.org/2007/opf"); 
//reference为节点名 
XmlNodeList reference = xml.SelectNodes("//ns:reference", nsMgr); 
 |