XML LINQ 查询不返回数据
我今天尝试了 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。
有什么提示吗?
I experimented with LINQ to XML today, but I wasn't very successful.
When I use a namespace I don't get any data.
Here's the (simplified) xml:
<?xml version="1.0" encoding="UTF-8" ?>
<Message xmlns="urn:protocols:format13">
<data>
testdata
</data>
</Message>
I try to get the data with (xmlmsg is a string):
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>();
But datalist remains empty. If I don't us a namespace it works.
I used XmlReader before, which worked fine with namespaces. But as my xml data gets a little complex to parse, I wanted to use LINQ.
Any hints?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
或者为什么它不起作用;您没有访问该属性的值;这也有效:
或
or to why it didn't work; you aren't accessing the value of the attribute; this works too:
or