2017-02-01 1 views
1

私はXMLDocumentをしていたし、例えば、私は私が使用してこのような何かをachiveだろうか不思議でしたUWP - ているXmlNodeListのXDocumentの等価

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

のようなものを使用するノードの結果の数をカウントしたい場合代わりにXDocument。

答えて

3

LINQ to XMLは単にノードのシーケンスIEnumerable<XNode>または要素のシーケンスIEnumerable<XElement>で動作するため、XmlNodeListに相当するLINQ to XMLに特定のクラスはありません。いくつかのノードを選択すると、一致するノードが1つずつ表示されます。必要に応じて、リストや他のコレクションにシーケンスを保存することができます。あなたのコードのために例えば

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チュートリアルがあります –