考虑这个XML文件结构
...
<sometag attr="foobar">
<subtag>
<subsubtag someattr="foo" />
<subsubtag someattr="bla" />
<subsubtag someattr="bar" />
</subtag>
</sometag>
...
目前我有这个XPath查询:/sometag/subtag/subsubtag[@someattr='foo']
它给我这些子标签。是否可以从此查询中获取attr="foobar"
?所以我希望attr
中的所有sometag
都有subsubtag
someattr="foo"
。{/ p>
答案 0 :(得分:2)
我刚刚发现的另一种可能性:
/sometag/subtag/subsubtag[@someattr='foo']/../../@attr
您可以使用..
选择父节点。你需要进入hirachie并选择属性。
答案 1 :(得分:1)
在xml文件中:
<root>
<sometag attr="foobar1">
<subtag>
<subsubtag someattr="foo"/>
<subsubtag someattr="bla"/>
<subsubtag someattr="bar"/>
</subtag>
</sometag>
<sometag attr="foobar2">
<subtag>
<subsubtag someattr="foo"/>
<subsubtag someattr="bla"/>
<subsubtag someattr="bar"/>
</subtag>
</sometag>
<sometag attr="foobar3">
<subtag>
<subsubtag someattr="f2342oo" />
<subsubtag someattr="bla" />
<subsubtag someattr="bar" />
</subtag>
</sometag>
</root>
尝试:
/root/sometag/subtag/subsubtag[@someattr='foo']/../../@attr
我对here进行了快速测试,似乎对我有用。
答案 2 :(得分:1)
/sometag[subtag/subsubtag[@someattr="foobar"]]/@attr
或更不严格:
// sometag [// subsubtag [@ someattr = “foobar的”]] / @ ATTR