Linq to XML - 获取具有特定子元素的元素
问题描述:
使用LINQ to XML,我如何获取具有命名子元素的所有元素的集合。例如Linq to XML - 获取具有特定子元素的元素
;
<root>
<Garage>
<Car id="001">
<Price PaymentType="Cash">$100</Price>
</Car>
<Car id="002">
<Price PaymentType="Cash">$200</Price>
</Car>
<Car id="003">
</Car>
</Garage>
</root>
这将返回2个Car元素(#1和#2),因为它们具有Price元素。它不会返回3号车,因为它没有价格元素。
感谢一如既往
答
假设你有装进去你的示例XML的文档命名XDocument对象。你可以尝试这样的事情。
IEnumerable<XElement> elements = doc.Descendants("Garage").Elements().Where(e => e.Elements().Any());
到目前为止我尝试过的所有事情都会返回子元素。如果/当我再次陷入困境时,我会再次去发布代码示例 – ausgeorge
如果没有看到您的代码,我们不得不求助于猜测您可能被卡住的位置。我建议找到所有的汽车元素。一旦你这样做,尝试删除那些没有价格儿童。完成之后,尝试将这两个步骤合并为一个查询。祝你好运! –
我一直无法使用Linq to XML来解决此问题。但是,我通过迭代XElements列表并按此方式进行过滤来解决此问题。 – ausgeorge