xpath:搜索" down"然后回来" up"

时间:2016-03-17 00:16:31

标签: xml xpath

我想在节点中搜索一个值,然后将未知数量的级别转换回另一种节点。

例如,我想查找位于法国或在法国拥有子公司的所有公司的名称。子公司可以嵌套几个级别。

我知道我可以用

进行追踪
//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>

1 个答案:

答案 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>