从HtmlCleaner清理文本中的HTML



我想看到我们从HTMLCleaner获得的干净的HTML。我看到TagNode上有一个叫做serialize的方法,但是不知道如何使用它。有人有它的样例代码吗?

谢谢Nayn

示例代码:

HtmlCleaner htmlCleaner = new HtmlCleaner();
TagNode root = htmlCleaner.clean(url);
HtmlCleaner.getInnerHtml(root);
String html = "<" + root.getName() + ">" + htmlCleaner.getInnerHtml(root) + "</" + root.getName() + ">";

使用org.htmlcleaner.XmlSerializer的子类,例如:

// get the element you want to serialize
HtmlCleaner cleaner     = new HtmlCleaner();
TagNode     rootTagNode = cleaner.clean(url);
// set up properties for the serializer (optional, see online docs)
CleanerProperties cleanerProperties = cleaner.getProperties();
cleanerProperties.setOmitXmlDeclaration(true);
// use the getAsString method on an XmlSerializer class
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);
String        html          = xmlSerializer.getAsString(rootTagNode);
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);
String html = xmlSerializer.getAsString(rootTagNode);
上面的

方法有一个问题,它会修剪HTML标签中的内容,例如

这是第一段。

 will become 

这是第一段。

getSingleLineOfChildren函数做修剪操作。因此,如果我们从网站获取数据并希望保持像tuckunder这样的格式。

PS:如果一个html标签有子标签,父标签的内容将不会被裁剪,

例如,<p> this is paragraph1. <a>www.xxxxx.com</a> </p>将在"this is段落1"前保留空格

相关内容

  • 没有找到相关文章

最新更新