2012-01-03 92 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

相關問題