jericho-html - 文本提取和不正确的文本长度

时间:2013-08-03 01:32:26

标签: java gwt html-parsing jericho-html-parser

今天我尝试将lib用作jericho-html-3.2extract text from simple html ......我遇到了一个奇怪的文本假长度问题,如下所示:

如果我有html这个

Hello World :)<br><br>Hello World :(<br><br>Hello World ;)<br>

...我的RichTextArea getText().length()返回 42 实际上是正确的长度,但是当我尝试使用类似

的代码从此html中提取文本时
        Source source = new Source(html);
    String text = source.getTextExtractor().toString();

... text.length()返回 44

所以我不明白为什么长度为 42 的文字变成长度为 44 的文字以及如何修复它?

由于

2 个答案:

答案 0 :(得分:0)

只有44,你需要将所有的标签分别视为一个字符,每个空格分别作为一个字符,所有的表情分别作为一个字符。

H(1)e(2)l(3)l(4)o(5) (6)W(7)o(8)r(9)l(10)d(11) (12):)(13)<br>(14)<br>(15)H(16)e(17)l(18)l(19)o(20) (21)W(22)o(23)r(24)l(25)d(26) (27:((28)<br>(29)<br>(30)H(31)e(32)l(33)l(34)o(35) (36)W(37)o(38)r(39)l(40)d(41) (42);)(43)<br>(44)

答案 1 :(得分:0)

我不得不深入挖掘它,我认为错误的文本长度来自html断路器,因为jericho html-parser 由于某种原因用空格替换新的断路器 什么......

至于现在,我无法确定哪些标签会替换哪些字符,但就我的情况而言,我只是试图像这样做一些using regular expression(参见片段)

html=html.replaceAll("<br>","");

Source source = new Source(html);
String text = source.getTextExtractor().toString();

...所以现在它确实将原始文本长度恢复为 42 :)

我希望小费可以节省一天


谢谢大家的帮助