将标记错误为HTML标记怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (56)

我得到了一个html片段,如下所示:

<span class=#article-title#>About《About<SomeChineseChars》Blabla</span>

当我试图从这个元素中提取文本时,使用

doc.select(".article-title").text();

最后,我将得出以下结论:

About《About》Blabla 

在调试程序之后,发现

<SomeChineseChars> 

被视为HTML标记,JSoup自动关闭标记,如下所示

<SomeChineseChars></SomeChineseChars> 

那么,如果是为了避免这种情况发生,还是因为这是一个bug?

提问于
用户回答回答于

我通过黑客入侵JSoup,形成了一个解决方案,如下所示:

  1. 创建一个名为org.jsoup解析器的新包;
  2. 自定义HtmlTreeBuilder公共类TroilaHtmlTreeBuilder扩展HtmlTreeBuilder{私有字符串zh=“\u4e00-\u9fa5+“;public TroilaHtmlTreeBuilder(){}@重写元素插入(Token.StartTag startTag){if(startTag.tagName.Matters(Zh){Token.Character ch=新Token.Character();ch.data(”<“+startTag.tagName+”>);INSERT(Ch);返回NULL;}返回Super.INSERT(StartTag);}公共文档解析(读取器输入,字符串base URI){返回Super.Analysis(Input,base URI,ParseErrorList.noTracking(),this.defaultSettings();})

我不认为这是一个解决问题的好办法,所以如果你有更好的主意,请告诉我。

扫码关注云+社区

领取腾讯云代金券