2012-01-03 8 views
1

複雑なxmlの最初のノードは、間にランダムなノードを持つ深い深いサブノードが必要です。 私のXML:私はこのデザインでのみ正しい結果を得るため、このXPATHでランダム(オプション)のサブノードを持つ最初の(特定の)ノードを取得

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

を。入れ子の等級はvariabelです。

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

私が最初BCD得る場合、そのようなXPATHたい(ID = '1')ノード:

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

又は第BCD(ID = '2')ノード:

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

よろしくクリス

答えて

2

私のために次のXPath作品:

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

私はを取得します。 –

+0

は先頭の要素のみが最初に選択されるように固定されています – rene

関連する問題