Jsoup - Android - Разбор информации из данных формы / ввода - PullRequest
1 голос
/ 29 июня 2011

Я использую Jsoup в своем приложении и пытаюсь проанализировать информацию из нескольких входных тегов, чтобы добавить их в URL и автоматически публиковать данные.

Часть HTML, которую я пытаюсь проанализировать, выглядит следующим образом:

<div class='theDivClass'>
    <form method="post" id="handlePurchase" name="makePurchase" action="/shop.php">
        <input type="hidden" name="ProductCode" value="A1223MN" />
        <input type="hidden" name="SystemVersion" value="3" >
        <input type="hidden" name="ProductClass" value="BOOK" />
    </form>
</div>

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

x = A1223MN
y = 3
z = BOOK

Я на полпути знаком с JSOUP в том смысле, что могу анализировать текст, изображения и URL-адреса, но по какой-то причине это не для меня.

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

7 голосов
/ 20 декабря 2011

Вы должны быть в состоянии использовать это:

Elements hidden = doc.select("input[type=hidden]");

А затем просто извлеките значения attr из каждого элемента в hidden. Я только что попробовал, и, кажется, работает как ожидалось.

Для полноты:

Map<String,String> hiddenList = new HashMap<String, String>();
Elements hidden = doc.select("input[type=hidden]");
for (Element el1 : hidden){
    hiddenList.put(el1.attr("name"),el1.attr("value");
}

Даст вам карту всех скрытых полей ввода в документе.

1 голос
/ 28 марта 2014

Я нашел еще один способ:

FormElement f = (FormElement) doc.select("form#handlePurchase").first();
System.out.println(f.formData());

Результат:

[ProductCode=A1223MN, SystemVersion=3, ProductClass=BOOK]
1 голос
/ 29 июня 2011
Element.select("input[name=productCode]").attr("value");
Element.select("input[name=SystemVersion]").attr("value");
Element.select("input[name=ProductClass]").attr("value");
0 голосов
/ 17 июля 2011

Закрывая этот вопрос, как видно из всех исследований, которые я провел, вы не можете извлечь данные из «скрытых» типов ввода.

...