Jsoup - Android - 从表单数据/输入中解析信息

时间:2011-06-28 23:16:40

标签: android html parsing jsoup form-data

我在我的应用程序中使用Jsoup,我试图从一些输入标签中解析信息,以便将它们添加到网址并自动发布数据。

我试图解析的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,因为我能够解析文本,图像和网址,但由于某些原因,这不是为了点击我。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:7)

你应该能够使用它:

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

然后从hidden中的每个元素中提取attr值。我刚试了一下它似乎按预期工作了。

为了完整性:

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 :(得分:1)

Element.select("input[name=productCode]").attr("value");
Element.select("input[name=SystemVersion]").attr("value");
Element.select("input[name=ProductClass]").attr("value");

答案 2 :(得分:1)

我发现了另一种方式:

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

结果:

[ProductCode=A1223MN, SystemVersion=3, ProductClass=BOOK]

答案 3 :(得分:-2)

从我所做的所有研究中看出这个问题,您无法从“隐藏”输入类型中提取数据。