按名称检索XDocument的元素

时间:2011-01-28 01:07:54

标签: c# xml linq-to-xml

我有一个XML文档。我想检索根节点的特定后代节点。根节点没有命名空间,但子节点可以,尽管它们都是相同的。将此元素作为元素检索的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

根节点的命名空间无关紧要。

你可以写

XNamespace ns = "http://...";
var elem = doc.Element(ns + "TagName");

答案 1 :(得分:0)

如果您不知道孩子的名称空间,可以通过LocalName匹配它们,SingleOrDefault引用名称的本地(非限定)部分。

string name = "purchase";
var query = xml.Descendants()
               .Where(e => e.Name.LocalName == name);

这会返回IEnumerable<XElement>。从那里你可以循环它或使用{{3}}如果你只希望存在一个。{/ p>