2

有许多资源可以解析 HTML 页面和提取文本内容。Jsoup 就是一个例子。就我而言,我想提取带有每个句子出现的 html 标记的文本内容。例如,拿这个页面

<html>
<head><title>Test Page</title>
<body>
<h1>This is a test page</h1>
<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages.
</body>
</html>

我期望输出是这样的:

<h1>This is a test page</h1>
<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages.

换句话说,我想在页面的文本内容中包含特定的 html 标签。

4

2 回答 2

0

您分两步完成。首先,正如您所描述的,使用 JSoup 创建一个 DOM 树。然后使用 XSL 过滤器对其进行处理。在 XSL 过滤器中,您可以只提取您感兴趣的那些标签。

于 2012-08-26T21:54:56.067 回答
0

为了得到你的结果,你可以使用这个:

final String html = "<html>"
        + "<head><title>Test Page</title>"
        + "<body>"
        + "<h1>This is a test page</h1>"
        + "<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages."
        + "</body>"
        + "</html>";

// Parse the String into a Jsoup Document
Document doc = Jsoup.parse(html);
Elements body = doc.body().children();

// Do further things here ...
System.out.println(body);

除了字符串之外html,您也可以加载文件或网站 - jsoup 提供了这一切。

在此示例body中包含您作为结果发布的 html。

或者您是否需要选择“h1 后跟 p 标签”之类的内容?

但是你可以看看Jsoup Selector API

于 2012-08-27T11:44:25.097 回答