2016-04-16 189 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

相关问题