我想查询给定路径的XDocument
对象(例如“/ path/to/element/I/want”),但我不知道如何继续。如何使用'路径'查询XDocument?
18
A
回答
2
soemthing相似,这可能工作:
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;
+1
'RemoveEmptyEntries'不是一个好主意,''//在XPath中具有特定的含义,它是搜索所有的后代。 – svick
41
可以使用的方法从System.Xml.XPath.Extensions
做到这一点。
例如,如果你想选择一个单一的元素,你可以使用XPathSelectElement()
:
var element = doc.XPathSelectElement("/path/to/element/I/want");
的查询不必像你所描述的简单路径,他们所使用的语言XPath。
4
尽管这是一种比较旧后,应当注意的是,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的实际结构和/或基数。
0
我需要做类似的事情。这repo有几个单元测试演示XDocument查询与XPathEvaluate()
相关问题
- 1. 的XDocument查询使用lambda
- 2. 如何使用google api查询路口中的传出路径
- 3. SQL - 查询使用XML路径
- 4. 使用索引路径查询XMl
- 5. 使用通配符作为路径的深层路径查询
- 6. 使用变量修改XDocument查询
- 7. SQL查询 - 如何使用XML路径查询gridview显示单行
- 8. 如何使用查询参数定义南希路径
- 9. 如何使用sql查询创建路径
- 10. 如何使用XDocument查询获取正确的元素
- 11. XDocument中当前节点的路径
- 12. 如何使用XDocument为解决方案中的文本文件提供路径?
- 13. Neo4j OGM 2.0查询路径
- 14. 查询在XSLT路径
- 15. Neo4j的查询路径
- 16. JSON查询和JSON路径
- 17. 查询字符串路径
- 18. Cognos Content Store查询路径
- 19. 查询来获取路径
- 20. 查询路径,PHP 5.2
- 21. 分析Neo4j路径查询
- 22. PHP包含路径查询
- 23. 的Neo4j - 对路径查询
- 24. 使用查询字符串的路径路由
- 25. 如何使用查询字符串获得当前路径使用水豚
- 26. 如何使用路径
- 27. 如何使用路径C#
- 28. 查询用户选择路径
- 29. 如何使用exe路径使用mciSendString(“播放路径”,0,0,0)?
- 30. 如何使用子路径获取资源路径使用NSBundle
可能重复[如何使用XPath与XDocument?](http://stackoverflow.com/questions/6209841/how-to-use-xpath-with -xdocument) –
你可以在这里看到一个选择不同路径的示例,带/不带名称空间定义等等:http://stackoverflow.com/a/38272604/5838538。 – Jelgab