0

如果我们通过给定名称的 select all 属性,是否可以通过 powershell 获取整个 xpath?

我的 xml 文件有一个名为 lang 的属性。我用 //@lang 来查找属性值。

如果我能获得完整的 xpath [如 /root/child/@attribute ),它将避免混淆。

4

1 回答 1

2

不。

.NET 没有“给定一个节点,创建一个 XPath 表达式”功能。虽然在理论上这很容易(迭代到父级,获取每个级别的兄弟级的基数来创建/node[n]/node[n]/...)在实践中这样的 XPath 表达式是无用的,因为它们与特定的文档相关联。

另一个匹配模式的文档可能在每个级别具有不同数量的子级,并且可能具有不同的顺序;这样的 XPath 将找不到等效节点。

考虑:

<root>
 <child1 attr1='foo'/>
</root>

<root>
 <child1 attr1='bar'/>
 <child1 attr1='foo'/>
</root>

从第一个文档生成的表达式/root/child1[1]/@attr1将在第二个文档中找到一个不同的——尽管相似的——节点。

于 2012-05-14T13:40:06.787 回答