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;

你查一下好吗?

谢谢!

--------------解决方案-------------

var result = xdoc.Descendants("World")
.Descendants("Animals")
.Descendants("Tab")
.Elements("Dogs")
.Where(n => n.Attribute("id").Value == "1");

输出:

<Dogs id="1">
<Dog1></Dog1>
<Dog2></Dog2>
<Dog3></Dog3>
</Dogs>

或使用XPath:

xml.XPathSelectElements("/World/Animals/Tab/Dogs[@id=1]")

要么

xml.XPathSelectElements("//Dogs[@id=1]")

它会发现无论他们在哪里发生的所有狗。

从你的样本数据我想你想

//from e in xml.Descendants("Animals").Descendants("Tab").Elements("Dogs")
from e in xml.Descendants("Animals").Elements("Tab").Descendants("Dogs")

而在同一条线上, Descendants("Animals")可能是Elements("Animals")如果要强制执行的结构。

对于剩下的查询看起来OK。

分类:C# 时间:2013-03-05 人气:0
本文关键词: LINQ,LINQ到XML
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.806 (s). 10 q(s)