XDocument
オブジェクトに特定のパス(例: "/ path/to/element/I/want")を照会したいのですが、続行する方法がわかりません。
_System.Xml.XPath.Extensions
_ のメソッドを使用してこれを行うことができます。
たとえば、単一の要素を選択する場合は、 XPathSelectElement()
:を使用します。
_var element = doc.XPathSelectElement("/path/to/element/I/want");
_
クエリは、説明したような単純なパスである必要はありません。 XPath 言語を使用します。
これはやや古い投稿ですが、LINQ-to-XML
の代わりにSystem.XML.XPath
を使用して、XDocument
内のパスに基づいて要素を検索できることに注意してください。
例:
var results = x.Elements("path").Elements("to").Elements("element").Elements("I").Elements("want").FirstOrDefault();
注:LINQ to XMLコマンドは、XMLの実際の構造やカーディナリティに対応するために変更する必要がある場合があります。
私は似たようなことをする必要がありました。この repo には、XPathEvaluate()を使用したXDocumentクエリのデモを行ういくつかの単体テストがあります。