7

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

谢谢奈恩

4

3 回答 3

7

这是示例代码:

HtmlCleaner htmlCleaner = new HtmlCleaner();

TagNode root = htmlCleaner.clean(url);

HtmlCleaner.getInnerHtml(root);

String html = "<" + root.getName() + ">" + htmlCleaner.getInnerHtml(root) + "</" + root.getName() + ">";
于 2012-07-29T09:48:07.413 回答
7

使用 的子类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);
于 2013-05-06T17:47:54.983 回答
0
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);

String html = xmlSerializer.getAsString(rootTagNode);

上面的方法有问题,它会修剪html标签中的内容,例如,

这是第 1 段。

 will become 

这是第 1 段。

它的getSingleLineOfChildren功能是进行修剪操作。因此,如果我们从网站获取数据并希望保留像 tuckunder 这样的格式。

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

例如<p> this is paragraph1. <a>www.xxxxx.com</a> </p> 将在“这是第 1 段”之前保留空格

于 2018-02-13T09:38:01.503 回答