24

特定のパス(「/ path / to / element / I / want」など)についてオブジェクトにクエリを実行したいのXDocumentですが、続行する方法がわかりません。

4

4 に答える 4

60

からのメソッドを使用System.Xml.XPath.Extensionsしてこれを行うことができます。

たとえば、単一の要素を選択する場合は、次を使用しますXPathSelectElement()

var element = doc.XPathSelectElement("/path/to/element/I/want");

クエリは、説明したような単純なパスである必要はなく、XPath言語を使用します。

于 2012-06-27T10:56:17.533 に答える
6

これはやや古い投稿ですが、要素内のパスに基づいて要素を検索LINQ-to-XMLする代わりに使用できることに注意してください。System.XML.XPathXDocument

例:

var results = x.Elements("path").Elements("to").Elements("element").Elements("I").Elements("want").FirstOrDefault();

注: XML の実際の構造やカーディナリティに対応するために、LINQ to XML コマンドを変更する必要がある場合があります。

https://msdn.microsoft.com/en-us/library/bb675156.aspx

于 2015-03-09T17:30:02.783 に答える
-2

これに似たものが機能する可能性があります。

var path = "/path/to/element/I/want";
var route = path.Split(new []{'/'}, StringSplitOptions.RemoveEmptyEntries);

XElement result = null;
foreach (var node in route)
{
    if (result == null)
    {
        result = _xmlDocument.Element(node);    
    }
    else
    {
        result = result.Element(node);
    }
}

return result;
于 2012-06-27T10:54:29.863 に答える