1

我想用 Java 解析 HTML 文本。

我尝试使用javax.swing.text.html.HTMLEditorKit解析 HTML 数据。它帮助我从 HTML 中获取数据。但我有一个 HTML 数据,比如 -

<span class="TitleServiceChange" >Service Change</span>
                    <span class="DateStyle">
                     Posted: 12/16/2012  8:00PM
                    </span><br/><br/>
                  <P>

周围有'<''>' 而不是'<''>'

在解析上述文本时,我收到错误 -

Parsing error: start.missing body ? ? at

请建议我解决我的问题。提前致谢。

4

3 回答 3

7

要取消转义字符串中包含的全部转义字符,您可以使用Apache Commons Lang实用程序库。

具体来说,使用StringEscapeUtils类,您可以在其中找到unescapeHtml4方法等。

于 2012-12-17T12:59:25.060 回答
3

如果您可以获得String数据的表示,用正确的标签替换它可以解决您的问题:

String htmlData = ...

htmlData = htmlData.replaceAll("&lt;", "<");
htmlData = htmlData.replaceAll("&gt;", ">");
于 2012-12-17T12:21:28.490 回答
1

HTML 可以用 XML 术语来描述。XML 有字符数据的概念,显然是由字符组成的。在 XML 中有五个具有特殊含义的字符:><&和- 这些字符用于定义元素"'分隔属性,因此解析器不会将它们视为普通字符。当您需要<在 XML 文档中插入文字时(就像我刚刚在这个答案中所做的那样),您可以在表单中使用字符引用&lt;,以便浏览器了解您不愿意启动 XML 标记。在 HTML4 DTD 中有252 个命名实体,因此使用它replaceAll()来具有可读性是不可行的细绳。

您最好了解 HTML 是如何工作的,这样当您必须构建数据的存储和呈现时,您就可以像 Web 浏览器一样思考。注意:

&lt;tag&gt;

非常不同的含义

<tag>

因此,您最好对您的问题进行论证,以获得正确方向的帮助。

于 2012-12-17T12:34:22.000 回答