从html文档中提取href的文本

时间:2011-07-17 10:29:49

标签: iphone html objective-c xml xpath

我正在尝试解析这段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> text </a>",

中获取文字

但我不知道如何在"<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;">
....................

只有onclick="seekVideo(....);

有所不同

2 个答案:

答案 0 :(得分:1)

您可以使用XPath:/div/p/a[1]/text() - 按索引选择a或匹配@onclick值:/div/p/a[starts-with(@onclick, 'seekVideo(0)')]/text()。因此,两个查询都返回A few years ago,

要获取@onclick seekVideo中的数字,您可以使用以下表达式:

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

例如:要查找a @onclick = seekVideo的{​​{1}},您可以使用此XPath:

0

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

因此两个查询都返回/div/p/a[number(substring-before(substring-after(@onclick, '('), ')')) = 0]/text()

答案 1 :(得分:0)

使用

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

此表达式计算XML文档中第一个a的字符串值,该divonclick的子项,其"seekVideo(0)"属性的字符串值以字符串{{1}}