如何使用java正则表达式过滤html文件内容?

时间:2015-01-14 08:31:37

标签: java regex xml

使用java我可以将网页下载到txt文件中。现在我想通过正则表达式从这个txt文件中读取值。下面是真正的html的一小部分。

<div>
   <input id="_NAME" value="/John/" />
   <input id="_LASTNAME" value="/BOND/"/>
   <input id="_Class"   value="5" />
</div>

我只想根据id(_Name和_LASTNAME)读取值? 提前致谢

1 个答案:

答案 0 :(得分:1)

只要HTML文件在浏览时可用,它就应该由Jsoup解析。由于您只查询input元素的属性,因此您不必担心生成的DOM的结构。

示例代码,使用您的HTML示例,前面有一堆错误的HTML标记:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class SO27938637 {
    public static void main(String[] args) {
        Document doc = Jsoup.parse("<div><span><div><b>sdf</span>dsf<i>sdfdsfsdfds<span></div><div>\n    <input id=\"_NAME\" value=\"/John/\" />\n   <input id=\"_LASTNAME\" value=\"/BOND/\"/>\n   <input id=\"_Class\"   value=\"5\" /></div>");
        Elements inputElement = doc.select("input");

        for (Element e: inputElement) {
            System.out.println(e.attr("id") + ": " + e.attr("value"));
        }
    }
}

输出:

_NAME: /John/
_LASTNAME: /BOND/
_Class: 5