![](/img/trans.png)
[英]What would be the XPATH expression to select all Checked Nodes of a TreeView?
[英]XPath expression to select all nodes
我想在给定的XmlNode中找到所有<Field />
节点(可以任意嵌套)。
如果执行以下操作:
foreach(XmlNode n in node.SelectNodes('//Field'))...
这将返回整个文档中的所有节点,而不是node下的所有node
。
这是XPath应该如何工作的吗? 我查看了一些文档,似乎//Node
查询的作用域应为调用它的任何节点。
是否有其他技术可以选择特定节点下具有给定名称的所有节点?
如果您使用'//Field'
则它是从文档根目录开始的绝对值。 要相对于当前节点进行搜索,只需使用'.//Field'
。
尝试使用SelecteSingleNode()
使用./Field
。
.//
后代,其中包括孩子的孩子(依此类推)。 ./
直系子女。 如果XPath以/
开头,则它相对于文档的根目录; 使它相对于您自己的节点以./
开头。
您可以使用简单的linq查询,如下所示:
var techLeads = (from value in element.Descendants ("Manager")
where value.Attribute ("Name").Value == "Mgr1"
select value).Descendants("TechLead");
样本Xml:
<Employees> <Manager Name="Mgr1"> <TechLead Name="TL1" /> <TechLead Name="TL2" /> </Manager> </Employees>
删除//
因为否则它将在所有文档中搜索到根节点。
node.SelectNodes("Field")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.