【问题标题】:Jsoup get element in value=" "Jsoup 获取 value="" 中的元素
【发布时间】:2011-11-24 15:50:34
【问题描述】:

我想在我放入 StringBuffer 的 HTML 文件中找到元素“buddyname”并获取 value="" 的元素,在本例中为 5342test。 value="" 中的元素可以更改,所以我无法直接搜索 5342test。

<fieldset style="display:none"><input type="hidden" name="buddyname" value="5342test"/></fieldset> 

我怎样才能用 jsoup 做到这一点?或者有没有更简单的方法,我已经尝试过 Pattern/Matcher 但没有成功,因为我遇到了Pattern.compile("&lt;input[^&gt;]*?value\\s*?=\\s*?\\\"(.*?)\\\")");

下面是一些示例代码。 提前谢谢你。

Document doc = Jsoup.parse(page); // page is a StringBuffer
        Elements td = doc.select("fieldset"); 

        for (Element td : tds) { 
          String tdText = td.text();
          System.out.println(tdText);
        } 

【问题讨论】:

    标签: java android regex string jsoup


    【解决方案1】:

    只需使用属性选择器[attrname=attrvalue]

    Element buddynameInput = document.select("input[name=buddyname]").first();
    String buddyname = buddynameInput.attr("value");
    // ...
    

    Do not use regex to parse HTML。如果您手头已经拥有世界一流的 HTML 解析器,那将毫无意义。

    另见:

    【讨论】:

    • 您好 BalusC,谢谢您的回答。刚刚听说jsoup有隐藏字段的问题,你能确认一下吗?谢谢
    • 从来没有听说过这个。也许您对 JavaScript 生成/操作的字段感到困惑。 Jsoup 不解析 JavaScript。它只是一个 HTML 解析器,而不是 Web 浏览器。
    猜你喜欢
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多