2012-01-03 91 views
1

我需要一个复杂xml的第一个节点,由深度较深的子节点和随机节点之间。 我的XML:获取具有随机(可选)子节点的第一个(特定)节点

<abc> 
    <bcd id="1"> 
     <cde> 
      <bcd id="100"> 
       <cde> 
        <xxx id="998"> 
        </xxx> 
       </cde> 
      </bcd> 
     </cde> 
    </bcd> 
    <bcd id="2"> 
     <cde> 
      <bcd id="101"> 
       <cde> 
        <bcd id="102"> 
         <cde> 
          <xxx id="999"> 
          </xxx> 
         </cde> 
        </bcd> 
       </cde> 
      </bcd> 
     </cde> 
    </bcd> 
</abc> 

有了这个XPATH我只能用这种设计一个正确的结果得到。嵌套的等级是可变的。

"//bcd/cde/bcd/cde/xxx[@id='998']" 

我想要一个XPATH那样从哪里获得第一BCD(ID = '1')的节点:

"//[bcd/cde]+/xxx[@id='998']" 

或第一BCD(ID = '2')节点:

"//[bcd/cde]+/xxx[@id='999']" 

认为克里斯

回答

2

以下XPath对我的作品:

/*/bcd[.//xxx/@id='998'] 
+0

因此我也得到了。 – 2012-01-03 13:55:49

+0

已修复此问题,因此只会先选取顶层元素 – rene 2012-01-03 14:07:45

相关问题