java - JSoup 解析带有复选框和选择输入的表单

标签 java checkbox jsoup

我有一个必须用 jsoup 读取的表单,它包含多个字段,包括复选框和组合框(选择输入)。

我正在使用以下代码读取这些值 -

Element campaignForm = doc.getElementById("Campaign");
            Elements allInputFields = campaignForm.getElementsByTag("input");
            Elements allSelections = campaignForm.getElementsByTag("select");                               
            Map<String, String> postData = new HashMap<String, String>();
            for(Element selectField:allSelections){
                postData.put(selectField.attr("name"), selectField.attr("value"));
            }

            for(Element inputField:allInputFields){
                if(inputField.attr("type").equalsIgnoreCase("checkbox")){
                    postData.put(inputField.attr("name"), inputField.attr("checked").equalsIgnoreCase("checked")?"1":"0");
                }else{
                    postData.put(inputField.attr("name"), inputField.attr("value"));
                }
            }

因此,当我打印 postData map 时,它为文本输入字段提供正确的值,但对于复选框和下拉列表(组合框),它不起作用。请告诉我是否有不同的方法来处理复选框并选择 jsoup 中的输入。

编辑: 我在评论的帮助下使用了复选框,但选择输入仍然不起作用。

提前致谢。

最佳答案

我使用以下代码让它工作 -

for(Element selectField:allSelections){
                String nameField = selectField.attr("name");
                String valueField = "";
                Elements allOptions = selectField.getElementsByTag("option");
                for(Element opt:allOptions){
                    if(opt.attr("selected").equalsIgnoreCase("selected")){
                        valueField = opt.attr("value");
                        break;
                    }
                }
                postData.put(nameField, valueField);                    
            }

            for(Element inputField:allInputFields){
                if(inputField.attr("type").equalsIgnoreCase("checkbox")){
                    postData.put(inputField.attr("name"), inputField.attr("checked").equalsIgnoreCase("checked")?"1":"0");
                }else{
postData.put(inputField.attr("name"), inputField.attr("value"));
    }

关于java - JSoup 解析带有复选框和选择输入的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858078/

相关文章:

python - 获取 QListWidget 中选定复选框的索引

java - 从 Jsoup 抓取的文本中删除多个字符 10

javascript - 如何通过Java解析器现场触发jQuery脚本

android - 有没有比 Jsoup 更快的 HTML 抓取工具?

java - 替代 Java 选择器实现

java - 使用PreparedStatement读取 ".0"列时返回额外的 "smalldatetime"

java - 安全异常:权限被拒绝

vba - 如何对多个复选框执行相同的代码来设置复选框值?

php - Woocommerce - 第二个 T&C 复选框在未选中时不会阻止结账

java - finish返回到哪个方法?