2015-05-19 77 views
0

嗨,我有这样一个一个xml:XPATH保留标签

<root> 
    <parent1> 
     <leaf1>value1</leaf1> 
     <leaf2>value1</leaf2> 
     <leaf3>value1</leaf3> 
     <leaf4>value1</leaf4> 
    </parent1> 
    <parent2> 
     <leaf1>value1</leaf1> 
     <leaf2>value1</leaf2> 
     <leaf3>value1</leaf3> 
     <leaf4>value1</leaf4> 
     ... 
     <leafN>value1</leafN> 
    </parent2> 
</root> 

我需要提取此作为输出:

<leaf1>value1</leaf1> 
<leaf2>value1</leaf2> 
<leaf3>value1</leaf3> 
<leaf4>value1</leaf4> 
... 
<leafN>value1</leafN> 

我怎么能写和XPath查询给我的可能性跳过一些节点...例如:leaf1和leaf3?

回答

1

如果XML是作为问题那样简单,提取所有root的孙子,你可以使用:

/*/*/* 

并排除leaf1leaf3您可以使用类似:

/*/*/*[not(self::leaf1) and not(self::leaf3)] 
0

如果要查找不依赖于树的结构的所有叶节点,请使用xpath:

//*[count(*)=0 and not(self::leaf1) and not(self::leaf3)]