Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup POST:定义所选选项以返回HTML?_Java_Android_Html_Jsoup - Fatal编程技术网

Java Jsoup POST:定义所选选项以返回HTML?

Java Jsoup POST:定义所选选项以返回HTML?,java,android,html,jsoup,Java,Android,Html,Jsoup,我试图生成一个HTML帖子到一个有选项列表的页面。有一个下拉列表,用户在其中选择一个项目,然后单击“生成”按钮。根据所选的选项,它将返回各种结果。我对HTML前后进行了比较,可以看到如下差异: 以前 <option value="Option1">Option 1</option> <option value="Option2">Option 2</option> <option value="Option3">Option 3<

我试图生成一个HTML帖子到一个有选项列表的页面。有一个下拉列表,用户在其中选择一个项目,然后单击“生成”按钮。根据所选的选项,它将返回各种结果。我对HTML前后进行了比较,可以看到如下差异:

以前

<option value="Option1">Option 1</option>
<option value="Option2">Option 2</option>
<option value="Option3">Option 3</option>

必须使用数据通过字段的
名称
属性设置字段的值

使用时:

.data("selected", "Option2")
与在请求页面的
表单中包含此元素相同(请注意
name=“selected”
):

输出:

<html>
    <head></head>
    <body>
        <div>example</div>
        <form>
            <select name="mySelect">
                <option value="Option1">Option 1</option>
                <option value="Option2" selected="selected">Option 2</option>
                <option value="Option3">Option 3</option>
            </select>
        </form>
    </body>
</html>

例子
选择1
选择2
选择3

我理解你的意思,但我认为我在处理这个问题时完全错了。我发现我可以使用Jsoup设置属性,但是当我将修改后的HTML发布回服务器时,它只返回所选的选项。我真正需要做的是在解析之前点击网页元素,从我的理解来看,这也是因为我试图在Android中这样做,这似乎是我最好的选择,但正如上面提到的,这对于我想要做的事情来说真的是过火了。你是对的。作为补充,我编辑了答案。看看吧,可能会有帮助。
.data("selected", "Option2")
<select name="selected">
    <option value="Option1">Option 1</option>
    <option selected="selected" value="Option2">Option 2</option>
    <option value="Option3">Option 3</option>
</select>
import org.jsoup.Jsoup;
import org.jsoup.nodes.*;
import org.jsoup.select.*;

public class JSoupChangeDom {
    public static void main(String[] args) {
        Document doc = Jsoup.parse(""+
        " <html><body>                                            " +
        " <div>example</div>                                      " +
        " <form>                                                  " +
        "    <select name='mySelect'>                             " +
        "       <option value='Option1'>Option 1</option>         " +
        "       <option value='Option2'>Option 2</option>         " +
        "       <option value='Option3'>Option 3</option>         " +
        "    </select>                                            " +
        " <form>                                                  " +
        " </body></html>                                          ");
        Element mySelect = 
                      doc.getElementsByAttributeValue("name", "mySelect").get(0);
        String optionValueToBeSelected = "Option2";
        Elements options = mySelect.getElementsByTag("option");
        for (Element option : options) {
            if (option.attr("value").equals(optionValueToBeSelected)) {
                option.attr("selected", "selected");
            } else {
                option.removeAttr("selected");
            }
        }
        System.out.println(doc);
    }
}
<html>
    <head></head>
    <body>
        <div>example</div>
        <form>
            <select name="mySelect">
                <option value="Option1">Option 1</option>
                <option value="Option2" selected="selected">Option 2</option>
                <option value="Option3">Option 3</option>
            </select>
        </form>
    </body>
</html>