Извлечение href-текста из HTML-документа - PullRequest
1 голос
/ 17 июля 2011

Я пытаюсь разобрать этот фрагмент 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 ]

1 голос
/ 17 июля 2011

Вы можете использовать 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 = 0, вы можете использовать этот XPath:

/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 голосов
/ 18 июля 2011

Используйте

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

Это выражение оценивает строковое значение первого a в документе XML, который является дочерним для div, и строковое значение атрибута onclick которого начинается со строки "seekVideo(0)"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...