2011-07-17 5 views
1

からHREFのテキストを抽出:私はHTMLのこの部分を解析しようとしているHTMLドキュメント

私のような、ラベルのテキストを取得する方法を知りたい
<div> 
    <p> 
    <a href="#" class="transcriptLink" onclick="seekVideo(0); return false;">A few years ago,</a> 
    <a href="#" class="transcriptLink" onclick="seekVideo(2000); return false;">I felt like I was stuck in a rut,</a> 
    <a href="#" class="transcriptLink" onclick="seekVideo(5000); return false;">so I decided to follow in the footsteps</a> 
    <a href="#" class="transcriptLink" onclick="seekVideo(7000); return false;">of the great American philosopher, Morgan Spurlock,</a> 
    <a href="#" class="transcriptLink" onclick="seekVideo(10000); return false;">and try something new for 30 days.</a> 
    </p> 
</div> 

:「数年前、 "<a href="#" class="transcriptLink" onclick="seekVideo(0); return false;">A few years ago,</a> "

<a href="#" class="transcriptLink" onclick="seekVideo(0); return false;"> 
<a href="#" class="transcriptLink" onclick="seekVideo(2000); return false;"> 
.................... 
のラベルに 『」

私は"<a> text </a>",

でテキストを取得することができますしかし、私は取得する方法がわからない』数年前に

onclick="seekVideo(....);

+0

良い質問、+1。 XPath式の評価が簡単なテキストを正確に生成するための簡単で簡単なXPath式については、私の答えを見てください。 –

答えて

1

あなたはXPathを使用することができますについて異なるがあります: - :/div/p/a[starts-with(@onclick, 'seekVideo(0)')]/text()/div/p/a[1]/text()は、インデックスまたは@onclick値を照合することによってaを選択します。したがって、両方のクエリはA few years ago,を返します。

@onclickseekVideoに番号を取得するには、あなたがこの表現を使うことができます。

substring-before(substring-after(@onclick, '('), ')') 

例:その@onclickseekVideo = 0あなたはこのXPathを使用することができますaを見つけるには:

/div/p/a[substring-before(substring-after(@onclick, '('), ')') = '0']/text() 

または

/div/p/a[number(substring-before(substring-after(@onclick, '('), ')')) = 0]/text() 

したがって、両方のクエリはA few years ago,を返します。

+0

"/ div/p/a [1]/text()"を使用する場合、seekVideo(number)の数値を取得する方法は? – libai

+0

@ user820914、私は自分の答えを更新しました。 –

+0

seekVideo(number)で数値を取得する方法???? /div/p/a [数字(部分文字列前(部分文字列後)(@onclick、 '(')、 '))]) は正しくありません! 例: 私は "2000"を取得したいと思いますか? – libai

0

使用

string(//div/a[starts-with(@onclick, 'seekVideo(0)')]) 

この式はdivの子であるXML文書の最初のaの文字列値を評価し、そのonclick属性の文字列値がで始まります文字列"seekVideo(0)"

関連する問題