【问题标题】:Jsoup accessing the HTML select tagJsoup 访问 HTML 选择标签
【发布时间】:2012-09-07 12:35:20
【问题描述】:

我是 jsoup 的新手,在使用 html 标签时遇到了一些麻烦。我需要根据它们包含的文本获取选择列表选项的值属性。例如:

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

您知道如果 jsoup 获得“第二个值”作为搜索参数,我如何告诉它返回值“1”吗?

【问题讨论】:

    标签: java html jsoup


    【解决方案1】:

    这是另一个解决方案:

    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
    

    【讨论】:

      【解决方案2】:

      这可能对你有帮助..

      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"));
                  }
      
              }
      

      【讨论】:

        【解决方案3】:

        试试这个代码:

        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");
            }
        }
        

        希望对你有帮助!

        【讨论】:

        • 抱歉,'optionS' 行号中有一个额外的 's'。 2. 请立即查看。
        【解决方案4】:

        我认为最简单的解决方案是:

         Document doc = Jsoup.parse(html);
         String value = doc.select("#list > option:contains(Second value)").val();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-04
          • 1970-01-01
          • 1970-01-01
          • 2015-06-12
          • 1970-01-01
          相关资源
          最近更新 更多