2012-10-11 106 views
2

我想使用XPath獲取第一個父級祖先。 我想分析這樣的代碼:使用Xpath獲取第一個祖先

<div> 
    <span class="city">City 1</span> 

    <div class="annonce"> 
     <span class="item">Item1</span> 
    </div> 
</div> 
<div> 
    <div class="annonce"> 

     <span class="item">Item2</span> 
    </div> 
</div> 

<div> 
    <span class="city">City 2</span> 

    <div class="annonce"> 
     <span class="item">Item3</span> 
    </div> 
</div> 
<div> 
    <div class="annonce"> 
     <span class="item">Item4</span> 
    </div> 
</div> 

而且使用XPath我想要得到的第一個父城市。 例如,對於Item1,Item2我想要City 1 而對於Item3,Item4我想要City 2

可以這樣做嗎? P.S:我無法編輯源代碼。

感謝

+1

爲什麼你必須使用Xpath? – Baba

+0

要獲取數據,如何在沒有XPath的情況下執行此操作? – guillaume

回答

5

我想用XPath來獲得的第一個父祖先。

此術語不正確且誤導。 「祖先祖先」沒有意義,因爲父母始終是祖先。

另外。您要選擇的元素不是父元素或任何span[@class='item']元素的祖先。

最後,提供的文本不是格式良好的XML文檔。在格式良好的XML文檔中,只有一個頂層元素。

此說

使用

preceding::span[@class='city'][1] 

此選擇上下文(當前)節點,其class屬性的字符串值是字符串"city"的第一在前span元件。

+0

Oups,我沒有再讀我的帖子。我同意「祖先祖先」的意義。我想說祖先。 但與您的代碼是可行的。 謝謝 – guillaume

+0

@guillaume,不客氣。 –