如何简化对带有缺省命名空间的XML文档的检索?

mxldream 2007-03-13 10:15:13
对于带命名空间的XML文档,如下所示

<root xmlns="http://aaa.com">
<node/>
<node/>
</root>

我要使用XmlDocument.SelectNodes取结点时,需要这样写

XmlDocument doc = new XmlDocument();
doc.Load(@"c:\test.xml");

XmlNamespaceManager ns_manager = new XmlNamespaceManager(doc.NameTable);
ns_manager.AddNamespace("aa", "http://aaa.com");
XmlNodeList node_list = doc.SelectNodes("/aa:root/aa:node", ns_manager);

感觉要在元素名前面都加上前缀很麻烦,也不直观,有没有办法做一些配置后,像对付不带命名空间的XML文档那样处理,如下所示:

XmlNodeList node_list = doc.SelectNodes("/root/book");

...全文
224 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimh 2007-03-20
  • 打赏
  • 举报
回复
带命名空间一般都有特殊的定义,不能随便删除
lldwolf 2007-03-20
  • 打赏
  • 举报
回复
up
up
zbjg 2007-03-13
  • 打赏
  • 举报
回复
有一种另类或者是变态的做法,你将XML文件字符串替换一下,
比如: str.Replace("xmlns=\"","xxx=\"");
仅供娱乐
hertcloud 2007-03-13
  • 打赏
  • 举报
回复
这个 是语法限定.
没见过别的语法了.
liujia_0421 2007-03-13
  • 打赏
  • 举报
回复
可以看看MSDN:

ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/WD_XML/html/d79e3f43-a05b-4e1d-9444-4f4eda8ee59a.htm
liujia_0421 2007-03-13
  • 打赏
  • 举报
回复
似乎没有,感觉这样也没多复杂...
sunrobust 2007-03-13
  • 打赏
  • 举报
回复
可以用别名,不过貌似还是要带上别名访问啊...
honkerhero 2007-03-13
  • 打赏
  • 举报
回复
你查一下,看是不是可以设置默认命名空间,在XML文件中

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧