繁体   English   中英

用Java提取HTML片段

[英]Extracting HTML fragments in Java

我的文本可能包含HTML岛。

例:

qwwdeadaskdfdaskjfhbsdfkf<a href="/cookbook/modifying-data/set-attributes">Set attribute values</a>gfkjgfkjrgjgjgjgjgroggjrog <b>jsoup</b>sdflkjsdfsfklsfklfjsfkljsfljsf<a href="/apidocs/org/jsoup/Jsoup.html#parse(java.lang.String)" title="Parse HTML into a Document.">Jsoup.parse(String html)</a>skgjdfgkjdfgkldfjgdfkgljdfg

如何提取这些HTML片段?

Java支持DOM和XML的SAX解析,但是它们都要求文档格式正确。 因此,您的示例将不会被解析。 有一个名为NekoHTML(http://nekohtml.sourceforge.net/)的项目,该项目支持扫描格式不正确的HTML。

我正是按照您的要求执行的-通过在文本周围包裹一个封闭的标签,然后使用java.xml.parsers.DocumentBuilder创建DOM树,从而在文本块中找到HTML片段。

基本思想(省略很多)只是

String fragment = "<wrap_node>" + orig_text + "</wrap_node>";
Document d = builder.parse(fragment);

如果标签的格式不正确...缺少结尾,嵌套不正确等,这将不起作用,但这对我有用,因为我想拒绝任何格式错误的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM