当前在线人数19779
首页 - 分类讨论区 - 电脑网络 - 窗口里的风景版 -阅读文章
未名交友
[更多]
[更多]
文章阅读: 心得:use XPath (+namespace)
[同主题阅读] [版面: 窗口里的风景] [作者:cogt] , 2008年09月26日14:36:40
cogt
进入未名形象秀
我的博客
[上篇] [下篇] [同主题上篇] [同主题下篇]

发信人: cogt (苦荆茶), 信区: DotNet
标  题:  心得:use XPath (+namespace)
发信站: BBS 未名空间站 (Fri Sep 26 14:48:05 2008), 转信

因为工作的需要,要parse非常复杂的xml.用donet来parse XML非常方便,尤其用XPath
直接选取node(s)。但是当xml比较复杂的时候,比如从crystal reports直接导出的xml
,通常的办法:
XmlDocument xml = new XmlDocument();
xml.Load( PathToXmlFile );

XmlNodeList selection = xml.SelectNodes(strXPathExpression);
就行不通:明明xml.innerXml不空,selection.Count总是0。去
掉namespace就可以了。经过一番Google,终于找到答案:在SelectNodes前加上

XmlNamespaceManager nsmgr = new XmlNamespanceManager(xml.NameTable);
nsmgr.AddNamespace("a", "http://....");
nsmgr.AddNamespace("b", "urn:....");

XmlNodeList selection = xml.SelectNodes(strXPathExpression, nsmgr);

这么一来:selection.Count > 0,再取数据就方便了。

--

※ 修改:·cogt 于 Sep 26 14:50:33 修改本文·[FROM: 216.99.]
※ 来源:·BBS 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 216.99.]

[上篇] [下篇] [同主题上篇] [同主题下篇]
[转寄] [转贴] [回信给作者] [修改文章] [删除文章] [同主题阅读] [从此处展开] [返回版面] [快速返回] [收藏] [举报]
 
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996