C# Linq to XML 查询
<World>
<Animals>
<Tab>
<Dogs id ="1">
<Dog1></Dog1>
<Dog2></Dog2>
<Dog3></Dog3>
</Dogs>
<Dogs id ="2"></Dogs>
<Dogs id ="3"></Dogs>
</Tab>
</Animals>
</World>
如何获取 id == 1 标签下的所有元素?
我的 Linq 查询。 (不起作用)为什么?
XDocument xml= XDocument.Load(xml.xml);
var elements = from e in xml.Descendants("Animals").Descendants("Tab").Elements("Dogs")
where e.Attribute("id").toString().Equals("1")
select c;
您能检查一下吗?
谢谢!
<World>
<Animals>
<Tab>
<Dogs id ="1">
<Dog1></Dog1>
<Dog2></Dog2>
<Dog3></Dog3>
</Dogs>
<Dogs id ="2"></Dogs>
<Dogs id ="3"></Dogs>
</Tab>
</Animals>
</World>
How do I get all elements under tag where id == 1?
My Linq query. (doesn't work) why?
XDocument xml= XDocument.Load(xml.xml);
var elements = from e in xml.Descendants("Animals").Descendants("Tab").Elements("Dogs")
where e.Attribute("id").toString().Equals("1")
select c;
Could you check it please?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
输出:
Output:
或者使用 XPath:
或
xml.XPathSelectElements("//Dogs[@id=1]")
它将找到所有出现的狗。
Or use XPath:
or
xml.XPathSelectElements("//Dogs[@id=1]")
which would find all Dogs wherever they occurred.
从您的示例数据来看,我认为您想要
在同一行中,如果您想强制执行该结构,
Descendants("Animals")
可以是Elements("Animals")
。对于其余的,您的查询看起来不错。
From your sample data I think you want
And in the same line,
Descendants("Animals")
could beElements("Animals")
if you want to enforce the structure.For the rest your query looks OK.