Как использовать xquery для извлечения данных формы из html? - PullRequest
0 голосов
/ 07 мая 2020
<form action='https://myurl.com' name='form2' id="form2" method='post'>
    <input type='hidden' name='abc' value='xxx'>
    <input type="hidden" name="efg" value="yyy">
</form>

Предположим, что у меня есть вышеуказанная форма на странице HTML, я бы хотел извлечь данные для публикации abc=xxx&efg=yyy и распечатать их в stdout. Кто-нибудь знает, как это сделать с xidel? Спасибо.

1 Ответ

1 голос
/ 07 мая 2020

Если ваш файл HTML сохранен как test. html, следующая команда xidel вернет ожидаемые результаты:

xidel test.html --xpath="string-join(//input ! (@name || '=' || @value), '&')" 

Результаты:

**** Retrieving: test.html ****
**** Processing: test.html ****
abc=xxx&efg=yyy

Если HTML находится на HTTP-сервере, просто замените test.html URL-адресом:

xidel http://localhost:8080/exist/rest/db/test.html --xpath="string-join(//input ! (@name || '=' || @value), '&')" 

Результаты:

**** Retrieving (GET): http://localhost:8080/exist/rest/db/test.html ****
**** Processing: http://localhost:8080/exist/rest/db/test.html ****
abc=xxx&efg=yyy

(Обратите внимание, что Xidel прощал неэкранированный амперсанд, который, как я изначально ожидал, вызовет ошибку, но я попытался, потому что, похоже, нет явной опции для output:method='text'.

...