簡體   English   中英

如何使用“路徑”查詢XDocument?

[英]How can I query an XDocument with a 'path'?

我想查詢給定路徑的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的實際結構和/或基數。

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

我需要做類似的事情。 這個repo有幾個單元測試演示使用XPathEvaluate()查詢XDocument

類似的東西可能會起作用:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM