Jsoup-Android-Parse表单数据/输入的信息

Jsoup-Android-Parse表单数据/输入的信息,android,html,parsing,jsoup,form-data,Android,Html,Parsing,Jsoup,Form Data,我在我的应用程序中使用Jsoup,我试图解析一些输入标记中的信息,以便将它们添加到url并自动发布数据 我试图解析的HTML部分如下所示: <div class='theDivClass'> <form method="post" id="handlePurchase" name="makePurchase" action="/shop.php"> <input type="hidden" name="ProductCode" value="

我在我的应用程序中使用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>
我对JSOUP有点熟悉,因为我能够解析文本、图像和URL,但由于某些原因,这对我来说并不合适


如果有任何帮助,我们将不胜感激。

关闭此问题,正如我所做的所有研究所显示的那样,您不能从“隐藏”输入类型中提取数据。

关闭此问题,如同我所做的所有研究所显示的那样,您不能从“隐藏”输入类型中提取数据。

您应该能够使用此功能:

Element.select("input[name=productCode]").attr("value");
Element.select("input[name=SystemVersion]").attr("value");
Element.select("input[name=ProductClass]").attr("value");
Elements hidden = doc.select("input[type=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");
}
Map hiddenList=new HashMap();
元素隐藏=单据选择(“输入[类型=隐藏]”;
用于(元素el1:隐藏){
hiddenList.put(el1.attr(“名称”)、el1.attr(“值”);
}

将为您提供文档中所有隐藏输入字段的映射。

您应该能够使用:

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");
}
Map hiddenList=new HashMap();
元素隐藏=单据选择(“输入[类型=隐藏]”;
用于(元素el1:隐藏){
hiddenList.put(el1.attr(“名称”)、el1.attr(“值”);
}

将为您提供文档中所有隐藏输入字段的映射。

我找到了另一种方法:

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

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

我找到了另一种方法:

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

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

我尝试了你上面列出的代码,但它仍然返回“空”值。我对我的原始问题进行了编辑,以可能对主题有更多的了解,但我认为附加代码不会影响我们从中提取数据的方式。是因为“类型”是否隐藏?当我仅获取div类数据时,表单和输入值不会显示在输出字符串中。我尝试了上面列出的代码,但仍然返回“empty”值。我已经对我的原始问题进行了编辑,以可能对主题有更多的了解,但我不认为额外的代码会影响我们从中提取数据的方式。是因为“类型”被隐藏了吗?当我仅获取div类数据时,表单和输入值不会出现在输出字符串中。