微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – Linq-to-XML获取带命名空间的元素

我正在使用 linq-to-xml来搜索元素.

var doc = XDocument.Load(reader);
                    var ns = doc.Root.Attribute("xmlns").Value;
                    var result = (from u in doc.Descendants(XName.Get("MyElement",ns))

每当我尝试在xml中找到一个元素时,我都需要摆脱使用XName.Get.如何为XDocument设置认命名空间,以便在搜索时不会打扰.

问候.

解决方法

如果你真的想这样做,这是忽略认命名空间的一种方法

XDocument doc;
        using (XmlTextReader xr = new XmlTextReader("input.xml"))
        {
            xr.Namespaces = false;
            doc = XDocument.Load(xr);
        }
        foreach (XElement bar in doc.Descendants("bar"))

但我建议接受XML中名称间的存在和重要性,并使用LINQ to XML提供的XName和XNamespace对象来处理它们.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。