读取的XML节点中带有冒号怎么办? 您所在的位置:网站首页 解析服务xml失败是什么意思 读取的XML节点中带有冒号怎么办?

读取的XML节点中带有冒号怎么办?

2024-07-14 23:10| 来源: 网络整理| 查看: 265

昨天,编程读取XML的时候,遇上了类似下面的一段XML

aaaa

起初没有特别的留意,于是乎就像平时读取XML一样使用了。

var ele = from item in xDoc.Descendants("a:book") select item;

但是,运行报错,不允许传入冒号:之类的字符,后来查阅资料发现,节点中,冒号前的a代表是的命名空间,冒号后的才是根节点名称。在Root节点中,也对命名空间进行了声明 xmlns:a="http://ww.abc.com/" ,知道了这么一回事后,再来看看如何去读取,正确的读取是:

XDocument xDoc = XDocument.Load("a.xml"); XNamespace n = @"http://www.abc.com"; var ele = from item in xDoc.Descendants(n + "book") select item.Value;

从代码可以看出,我声明了一个XNamespace类型的变量,并且把XML文件中出现的命名空间 http://ww.abc.com/ 赋值给它,然后再读取节点的时候,与真正的节点名称book进行拼接就可以了!

XML中出现命名空间的原因是,当你需要使用多个XML一起工作时,由于两个文档都包含带有不同内容和定义的节点元素,就会发生命名冲突,加上命名空间使用可以避免发生冲突,这与C#编程中类的命名空间的用处差不多。

另外,如果需要了解更多操作XML的可以访问下面这篇文章,写得很详细:

http://www.cnblogs.com/nsky/archive/2013/03/05/2944725.html

作者:dotnetgeek 出处: http://www.cnblogs.com/waynechan 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

如果你觉得本文写得不错,请点击右下角的推荐按钮,如果觉得本文有所欠缺,请评论或联系我!

如果你是广州、深圳、东莞三地的程序员,我欢迎你加入广深莞.NET技术交流群: 185718116



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有