【发布时间】:2013-11-08 18:56:39
【问题描述】:
我有一个 XML,例如
<?xml version="1.0" encoding="utf-8"?>
<A1>
<B2>
<C3 id="1">
<D7>
<E5 id="abc" />
</D7>
<D4 id="1">
<E5 id="abc" />
</D4>
<D4 id="2">
<E5 id="abc" />
</D4>
</C3>
</B2>
</A1>
这是可能的示例代码:
var xDoc = XDocument.Load("Test.xml");
string xPath = "//B2/C3/D4";
//or string xPath = "//B2/C3/D4[@id='1']";
var eleList = xDoc.XPathSelectElements(xPath).ToList();
foreach (var xElement in eleList)
{
Console.WriteLine(xElement);
}
它运行良好,但是如果我向根节点 A1 添加命名空间,则此代码不起作用。
在搜索解决方案时,我找到了this one,但它使用 Descendants() 方法来查询 XML。据我了解,如果我搜索
我的要求是搜索某个节点是否存在于特定的 XPath 中。如果有使用 Descendants 的方法,我会很高兴使用它。如果没有,请指导我如何使用名称空间进行搜索。
如果这是重复的,我深表歉意。
【问题讨论】:
标签: c# xml xpath linq-to-xml