[英]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.