我想看看我们从HTMLCleaner获得的已清理HTML。 我看到在TagNode上有一个名为serialize的方法,但是不知道如何使用它。 有人有任何示例代码吗?
由于 Nayn
答案 0 :(得分:7)
以下是示例代码:
HtmlCleaner htmlCleaner = new HtmlCleaner();
TagNode root = htmlCleaner.clean(url);
HtmlCleaner.getInnerHtml(root);
String html = "<" + root.getName() + ">" + htmlCleaner.getInnerHtml(root) + "</" + root.getName() + ">";
答案 1 :(得分:6)
使用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);
答案 2 :(得分:0)
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);
String html = xmlSerializer.getAsString(rootTagNode);
上面的方法有问题,它会修剪html标签中的内容,例如
这是第1段。
will become
这是第1段。
并且getSingleLineOfChildren
函数执行修剪操作。因此,如果我们从网站获取数据并希望保持格式像tuckunder。
PS:如果html标签有子标签,则不会对父标签contetn进行操作,
例如<p> this is paragraph1. <a>www.xxxxx.com</a> </p>
将在“this is paragraph1”之前保留空格