我想看看我们从 HTMLCleaner 获得的干净的 HTML。我看到在 TagNode 上有一个名为 serialize 的方法,但是不知道如何使用它。有人有任何示例代码吗?
谢谢奈恩
我想看看我们从 HTMLCleaner 获得的干净的 HTML。我看到在 TagNode 上有一个名为 serialize 的方法,但是不知道如何使用它。有人有任何示例代码吗?
谢谢奈恩
这是示例代码:
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标签中的内容,例如,
这是第 1 段。
will become
这是第 1 段。
它的getSingleLineOfChildren
功能是进行修剪操作。因此,如果我们从网站获取数据并希望保留像 tuckunder 这样的格式。
PS:如果一个html标签有子标签,父标签内容不会被修剪,
例如<p> this is paragraph1. <a>www.xxxxx.com</a> </p>
将在“这是第 1 段”之前保留空格