【问题标题】:jericho-html - text extracting and incorrect text lenghtjericho-html - 文本提取和不正确的文本长度
【发布时间】:2013-08-04 09:38:30
【问题描述】:

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

如果我有这个 html

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

...my RichTextArea getText().length() 返回的 42 实际上是正确的长度,但是当我尝试使用类似 a 的代码从该 html 中提取文本时

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

...text.length() 返回 44

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    只有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)
    

    【讨论】:

    • 不,实际上我想在提取的文本中有空格,这没关系;我只想让它的长度与原始字符串的长度一样......这就是关于的问题
    【解决方案2】:

    我不得不更深入地挖掘它,我认为错误的文本长度来自 html 换行符,因为 jericho html-parser 出于某种原因用空格替换了新的换行符什么的……

    至于现在,我不能确定它将哪些标签替换为哪些字符,但至于我的情况,我只是尝试像这样在using regular expression 上做一些走动(参见 sn-p)

    html=html.replaceAll("<br>","");
    
    Source source = new Source(html);
    String text = source.getTextExtractor().toString();
    

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

    我希望小费可以节省一天


    谢谢大家的帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多