【问题标题】:How to get a value from html element in Android?如何从 Android 中的 html 元素中获取值?
【发布时间】:2016-12-06 11:14:27
【问题描述】:

我怎样才能只获得“H4sIAAA”?

String out='<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="H4sIAAA"  autocomplete="off" />';

【问题讨论】:

    标签: android html-parsing


    【解决方案1】:
    final String VALUE = "value=\"";
    int start = out.indexOf(VALUE) + VALUE.length();
    int end = out.indexOf("\"", start);
    System.out.println(out.substring(start, end));
    

    【讨论】:

      【解决方案2】:

      执行此类操作的最佳方法是使用正则表达式。

      一个与您的问题完全匹配的简单示例:

      String out= "<input type=\"hidden\" name=\"javax.faces.ViewState\" id=\"javax.faces.ViewState\" value=\"H4sIAAA\"  autocomplete=\"off\" />";
      Pattern pattern = Pattern.compile(".*(value=\"(\\w*)\").*", Pattern.CASE_INSENSITIVE);
      Matcher matcher = pattern.matcher(out);
      
      if (matcher.matches()) {
        System.out.println(matcher.group(2));
      }
      

      这仅适用于具有“value =”的一种行输入。

      它有什么作用?

      1. 它准备了一个匹配整个字符串的正则表达式匹配器,一个具有“value”属性的组和一个具有属性“value”值的第二组

      2. 它使用模式和您给定的字符串“out”创建一个匹配器

      3. 如果匹配器匹配,则打印出组内容2,即属性值

      使用正则表达式的好处是,您可以让您的表达式忽略所有无用的内容,无论它是什么,并专注于您想要的提取。 这个例子只对只有一个值属性的一行输入有用。当你要解析空洞的 html 页面时,你必须将它扩展到你的需要。

      正则表达式文档:https://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html 测试正则表达式的好地方:http://regexr.com/

      玩得开心!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-11
        • 2019-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多