2015-11-30 2 views
1

У меня есть этот HTML таблица:Использование Xpath, как иногда извлекать данные из ячеек таблицы, которые содержат ссылки?

<table class="info"> 
<tbody> 
    <tr><td class="name">Year</td><td>2011</td></tr> 
    <tr><td class="name">Storey</td><td>3</td></tr> 
    <tr><td class="name">Title</td><td><a href="http://gov.kz/premera/">Premier</a></td></tr> 
    <tr><td class="name">Condition</td><td>Renovated</td></tr> 
</tbody> 
</table> 

В этой таблице данных организован таким образом, что каждая строка содержит 2 клетки, заключенные в <td> тегов. Первая ячейка содержит информацию о типе данных. Например, год постройки дома. Вторая ячейка содержит год информацию, которая сама 2011.

Я пытаюсь извлечь информацию из 2-й ячейки (это: 2011, 3, Premier, Отремонтированный)

Я использую это выражение Xpath:

//table[@class="info"]//td[2]/text() 

Полученное выход (неверно):

2011 
3 
Renovated 

Желаемый результат:

2011 
3 
Premier 
Renovated 

Как вы можете видеть 2-й в 3-й строке, а не только текст содержит ссылку, и поэтому информация из этой строки пропущена. Итак, желаемая строка «Премьер» не получена. Иногда ячейки в строках содержат ссылки, иногда это просто текст. Есть ли способ извлечь данные из 2-й ячейки в обоих случаях (ссылка или только текст)?

ответ

3

Просто добавьте вторую косую черту перед тем text():

//table[@class="info"]//td[2]//text() 

это будет получать текстовые узлы из всех детей из выбранных td

Смежные вопросы