同事质检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);
|