繁体   English   中英

XML LINQ查询不返回任何数据

[英]XML LINQ query returns no data

我今天尝试使用LINQ to XML,但我不是很成功。 当我使用命名空间时,我没有得到任何数据。

这是(简化的)xml:

<?xml version="1.0" encoding="UTF-8" ?>
<Message xmlns="urn:protocols:format13">
    <data>
    testdata
    </data>
</Message>

我尝试使用(xmlmsg是一个字符串)来获取数据:

XElement root = XElement.Parse(xmlmsg);
XNamespace ns = root.Attribute("xmlns").ToString();

List<XElement> datalist =
       (from desc in root.Descendants(ns + "data")
         select desc).ToList<XElement>();

但是数据主义者仍然是空的。 如果我不使用命名空间,它就可以工作。

之前我使用过XmlReader,它可以很好地处理命名空间。 但是由于我的xml数据要解析得有点复杂,我想使用LINQ。

任何提示?

        XNamespace ns = root.Name.Namespace;

        List<XElement> datalist =
               (from desc in root.Descendants(ns + "data")
                select desc).ToList<XElement>();

或者为什么它不起作用; 您没有访问该属性的 ; 这也有效:

XNamespace ns = (string)root.Attribute("xmlns");

要么

XNamespace ns = root.Attribute("xmlns").Value;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM