我正在寻找 xpath 中可以做的事情://foo[@n="$1"]//bar[@n="$2"]
它可以返回我$1
和$2
. 或者至少把两个都还给<foo>
我<bar>
这里有更多细节,我有一个 xml 文档:
<xml>
<foo>
<a n="1">
<b n="1"/>
<b n="2"/>
</a>
</foo>
<a n="2">
<b n="1"/>
</a>
<a n="3">
<b n="1"/>
<foo>
<b n="2"/>
</foo>
<b n="3"/>
</a>
</xml>
我想根据 in 的 n 属性生成一个字符串<a>
,<b>
所以我有 xpath://a[@n]//b[@n]
然后对于我返回的每个结果,我使用:./@n
并./ancestor::a/@n
获取我想要的信息。
这工作正常,但我需要更智能的东西,因为我有很多这样的结构,需要自动生成 xpath。
所以对于上面的例子,我正在寻找一些 xpath,比如://a[@n="$1"]//b[@n="$2"]
然后返回我:`(1, 1), (1, 2), (2, 1), (3, 1), (3, 2), (3 , 3)