通过 java 如何从类似 html 标签中,提取相应的内容,除了正则表达式的方式,还有哪些比较好的解决方法?
推荐方案
可以使用针对 Java 的 HTML 解析器 Jsoup,它可直接解析某个 URL 地址、HTML 文本内容,提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。
假设我要提取类似如下内容中,em 标签的内容,具体示例如下:
String str = "中国空间站:<em>天宫</em>核心舱<em>天和</em>发射,中国永久性空间站迈出第一步";
提取 em 标签之间的内容代码如下:
Document doc = Jsoup.parse(str);
if (doc != null) {
// 提取多个
List<String> eachText = doc.select("em").eachText();
// 提取单个
String text = doc.select("em").text();
}