У меня есть несколько таблиц на веб-сайте, например:
<table>
<tr>
<td>Name</td>
<td>foo</td>
</tr>
<tr>
<td>Count</td>
<td>15</td>
</tr>
<tr>
<td>Date</td>
<td>2014-11-17</td>
</tr>
</table>
<table>
<tr>
<td>Name</td>
<td>bar</td>
</tr>
<tr>
<td>Count</td>
<td>42</td>
</tr>
<tr>
<td>Date</td>
<td>2014-12-24</td>
</tr>
</table>
...
Я хочу получить что-то вроде этого
foo 15
bar 42
Моя первая попытка в xidel была xidel --xpath "//table/tr[1]/td[2]" --xpath "//table/tr[2]/td[2]"
, но это дает
foo
bar
15
42
Как извлечь два значения в одну строку?
2 ответа
Использование XPath или XQuery 3.0: //table/tbody/(tr[1]/td[2] || ' ' || tr[2]/td[2])
. Я думаю, вам нужно запросить эту версию явно, по крайней мере, мне нужно было сделать это на http://videlibri .sourceforge.net/cgi-bin/xidelcgi. И я проанализировал как HTML, где синтаксический анализатор добавляет элемент tbody, и путь тоже нуждается в этом.
xidel-0.9.5.4998.exe -s --input-format=xml <input> ^
--xquery "//table/concat(tr[1]/td[2],'	',tr[2]/td[2])"
foo 15
bar 42
Похожие вопросы
Новые вопросы
html
HTML (язык гипертекстовой разметки) — это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто в паре с [CSS] и [JavaScript].