我想在节点中搜索一个值,然后将未知数量的级别转换回另一种节点。
例如,我想查找位于法国或在法国拥有子公司的所有公司的名称。子公司可以嵌套几个级别。
我知道我可以用
进行追踪//location[text() = 'France']/..
但是如果我想继续遍历直到我到达某个节点怎么办?
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<corporation>
<name>Fromage Sarl</name>
<location>France</location>
</corporation>
<corporation>
<name>Cheese Inc</name>
<location>USA</location>
<subsidiary>
<name>Yankee Imports</name>
<location>France</location>
</subsidiary>
</corporation>
</catalog>
答案 0 :(得分:2)
这个xpath:
//corporation[location = 'France' or .//subsidiary/location = 'France']/name
仅为那些有孩子corporation/name
或任何后代corporation
location='France'
选择整个文档中的所有subsidiary/location = 'France'
输出所选节点应为:
<name>Fromage Sarl</name>
<name>Cheese Inc</name>