4

私はjsoupが初めてで、htmlタグに少し問題があります。含まれるテキストに基づいて、選択リスト オプションの値属性を取得する必要があります。例えば:

'<select id="list">
<option value="0">First value</option>
<option value="1">Second value</option>
<option value="2">Third value</option>
</select>'

検索のパラメータとして「2 番目の値」を取得した場合、jsoup に値「1」を返すように指示する方法を教えてください。

4

4 に答える 4

6

これはあなたを助けるかもしれません..

String demo = "<select id='list'><option value='0'>First value</option><option value='1'>Second value</option><option value='2'>Third value</option></select>";


        Document document = Jsoup.parse(demo);
        Elements options = document.select("select > option");

        for(Element element : options)
        {
            if(element.text().equalsIgnoreCase("second value"))
            {
                System.out.println(element.attr("value"));
            }

        }
于 2012-09-14T12:40:53.407 に答える
6

別の解決策は次のとおりです。

public String searchAttribute(Element element, String str)
{
    Elements lists = element.select("[id=list]");

    for( Element e : lists )
    {
        Elements result = e.select("option:contains(" + str + ")");

        if( !result.isEmpty() )
        {
            return result.first().attr("value");
        }
    }

    return null;
}

テスト:

Document doc = Jsoup.parse(html); // html is your listed html / xml
Strign result = searchAttribute(doc, "Second value") // result = 1
于 2012-09-08T15:16:18.967 に答える
2

このコードを試してください:

String searchValue = "Second value";
Elements options = doc.select("#list > option");
String value = "";
for (Element option : options) {
    String text = option.text();
    if (text.equals(searchValue)){
        value = option.attr("value");
    }
}

それが役に立てば幸い!

于 2012-09-07T12:54:02.660 に答える