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

電話番号:+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.:"]"のようなxp​​athがあり、Tel.:要素を選択していますか?

答えて

1

"Tel.:要素を選択する"//div[@class='inhalt-links']/text[starts with "Tel.:"]"ような任意のXPathはありますか?"

確かに、この方法を試してみてください。

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

XPathは、*キーワードTel.:を先頭と末尾の空白を削除した後で始まり、エレメントよりも -rather テキストノードを返します。

normalize-space()がより正確に何をしているかの参考のため

*):

normalize-space機能ストリップは、文字列から空白を先頭と末尾、単一のスペースで空白文字のシーケンスを置き換え、結果の文字列を返します。 [Mozilla Developer Network]

+0

ありがとうございました。 – neenkart

+0

@neenkart問題はない、あなたは大歓迎です! – har07