2013-09-26 139 views
0

使用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号车,因为它没有价格元素。

感谢一如既往

+0

到目前为止我尝试过的所有事情都会返回子元素。如果/当我再次陷入困境时,我会再次去发布代码示例 – ausgeorge

+0

如果没有看到您的代码,我们不得不求助于猜测您可能被卡住的位置。我建议找到所有的汽车元素。一旦你这样做,尝试删除那些没有价格儿童。完成之后,尝试将这两个步骤合并为一个查询。祝你好运! –

+0

我一直无法使用Linq to XML来解决此问题。但是,我通过迭代XElements列表并按此方式进行过滤来解决此问题。 – ausgeorge

回答

0

假设你有装进去你的示例XML的文档命名XDocument对象。你可以尝试这样的事情。

IEnumerable<XElement> elements = doc.Descendants("Garage").Elements().Where(e => e.Elements().Any());