2010-11-23 36 views
0

我的XML文件的一部分:XPath的遞歸

<table> 
    <row id="aant"> 
     <radio id="radaant"> 
      <omschrijving>test radio</omschrijving> 
      <omschrijving>part 2</omschrijving> 
      <table> 
       <row id="testrow"> 
        <radio id="testrad"> 
         <omschrijving>test radio deeper</omschrijving> 
         <table/> 
        </radio> 
       </row> 
      </table> 
     </radio> 
    </row> 
</table> 

我想從使用id =「radaant」標籤下電臺拿到「omschrijving」。由於「omschrijving」在孩子身上也更深,我總是得到「測試radiopart 2test無線電更深」的結果,但我只想要「測試radiopart 2」。

我目前使用XPath: EXPR = xpath.compile( 「/表/行[@ ID = 'aant'] /收音機[@ ID = 'radaant']/omschrijving」)

如何我可以更改我的xpath字符串以僅從當前節點獲取「omschrijving」嗎?

+0

我不能重現你的問題:你的xpath選擇了所需的兩個`omschrijving`元素 – 2010-11-23 15:47:57

回答

1

嘗試EXPR = xpath.compile( 「/表/行[@ ID = 'aant'] /收音機[@ ID = 'radaant'] /子:: omschrijving」)

2

你明明說的關於另一個XML文檔或另一個XPath表達式

當所提供的XML文檔應用:

<table> 
    <row id="aant"> 
    <radio id="radaant"> 
     <omschrijving>test radio</omschrijving> 
     <omschrijving>part 2</omschrijving> 
     <table> 
      <row id="testrow"> 
      <radio id="testrad"> 
       <omschrijving>test radio deeper</omschrijving> 
       <table/> 
      </radio> 
      </row> 
     </table> 
    </radio> 
    </row> 
</table> 

您的XPath表達式

/table/row[@id='aant']/radio[@id='radaant']/omschrijving 

準確選擇想要的節點

<omschrijving>test radio</omschrijving> 
<omschrijving>part 2</omschrijving> 
+0

我確實是錯的,但我現在修好了。在這裏,我輸入[@ id ='radaant'],但在我的代碼中,我沒有填寫它。謝謝您的幫助 – Frederik 2010-11-24 11:26:23