2013-09-26 136 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());