2017-02-01 103 views
1

如果我有一個XMLDocument,想例如計算節點,我會用類似UWP - 的XDocument當量的XmlNodeList

 //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item"); 
     //if (CountResultsReturned.Count > 1) 
     //{} 

我不知道我將如何使用achive像這樣的結果數量而不是XDocument。

回答

3

LINQ to XML中沒有特定的類與XmlNodeList等價,因爲LINQ to XML只是簡單地使用節點序列IEnumerable<XNode>或元素序列IEnumerable<XElement>。當你選擇一些節點時,它只是逐個產生匹配的節點。如果需要,可以將序列存儲到列表或其他集合中。 E.g

var items = xdoc.Root.Elements("item").ToList(); 

爲您的代碼只選擇元素,並使用LINQ Any()方法來檢查是否有任何元素存在:

xdoc.Root.Elements("item").Any() 
// items.Any() 

您還可以使用Count()獲得元素的個數。當然XPath也可用

xdoc.XPathSelectElements("root/item").Count() 
// items.Count 
+1

我想將我的應用程序轉換爲UWP,它真的不喜歡我現在擁有的XML,我覺得我應該也許應該在XDocuments上做更多的閱讀。使用你的代碼似乎在做我想要的東西,所以謝謝你,我將把它作爲答案。 – TLCONE

+0

@TLCONE LINQ to XML是一個不錯的選擇。我建議你閱讀一些教程和/或使用LINQ Pad進行試用。有* Samples *選項卡,您可以在其中找到C#6 LINQ to XML教程 –