[英]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的實際結構和/或基數。
我需要做類似的事情。 這個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.