2016-04-16 237 views
1

我需要從下面的代碼中提取某些文本元素。xpath獲取數據以特定字符或字符串開頭

<div class="inhalt-links"> 
    <h2> 
     Deutsche Verkehrswacht 
     <br> 
     Verkehrswacht Dortmund e. V. 
     <br> 
    </h2> 
    <h3> 
     Standnummer:&nbsp; 
      <span style="font-weight: normal;">4.E08</span> 
    </h3> 
    <div class="clear"></div> 
    <br> 
    Benediktinerstraße 82 
    <br> 
    44287&nbsp;Dortmund 
    <br> 
    Deutschland 
    <br> 
    <br> 
    Tel.:+49 231 447687 
    <br> 
    Fax:+49 231 447136 
    <br> 
    E-Mail:[email protected] 
    <br> 
    <a href="http://www.verkehrswacht-dortmund.de" class="url" target="_blank">www.verkehrswacht-dortmund.de</a> 
    <br> 
    <div class="social"></div> 
    <br> 
</div> 

用於提取Tel.:+49 231 447687,我可以使用div[@class='inhalt-links']/text()[4]。對於傳真,電子郵件,網站等其他細節,我只需要更改text()元素的位置號。但是,這些文本的位置將是不同的順序有時,像下面的代碼:

<div class="inhalt-links"> 
    <h2> 
     DEW21 
     <br> 
    </h2> 
    <h3> 
     Standnummer:&nbsp; 
      <span style="font-weight: normal;">4.B56</span> 
    </h3> 
    <div class="clear"></div> 
    <br> 
    Günter-Samtlebe-Platz 1 
    <br> 
    44135&nbsp;Dortmund 
    <br> 
    Postfach:104141 
    <br> 
    44041&nbsp;Dortmund 
    <br> 
    Deutschland 
    <br> 
    <br> 
    Tel.:+49 231 544-0 
    <br> 
    Fax:+49 231 544-1130 
    <br> 
    E-Mail:[email protected] 
    <br> 
    <a href="http://www.dew21.de" class="url" target="_blank">www.dew21.de</a> 
    <br> 
    <div class="social"></div> 
    <br> 
</div> 

中的XPath div[@class='inhalt-links']/text()[4]將選擇文本「44041  多特蒙德」,而不是Tel.:+49 231 544-0 。有沒有像"div[@class='inhalt-links']/text[starts with "Tel.:"]"這樣的xpath來選擇Tel.:元素?

回答

1

「有沒有像"//div[@class='inhalt-links']/text[starts with "Tel.:"]"任何XPath選擇Tel.:元素?」

當然,試試這個方法:

//div[@class='inhalt-links']/text()[starts-with(normalize-space(), 'Tel.:')] 

中的XPath返回開頭文本節點比元素 - -rather,除去開頭和結尾的空格*後,關鍵字Tel.:


*)有關什麼normalize-space()參考正在做更精確地:

normalize-space函數帶中的前導和尾隨串空白,通過一個單一的空間取代的空白字符序列,並返回結果字符串。 [Mozilla Developer Network]

+0

謝謝,它工作。 – neenkart

+0

@neenkart沒問題,歡迎您! – har07

相關問題