2011-08-25 19 views
7

我想查看從HTMLCleaner獲得的清理過的HTML。 我看到在TagNode上有一個名爲serialize的方法,但不知道如何使用它。 有沒有人有任何示例代碼?從HtmlCleaner中獲取文本清理的HTML

由於 Nayn

回答

7

這裏的示例代碼:

HtmlCleaner htmlCleaner = new HtmlCleaner(); 

TagNode root = htmlCleaner.clean(url); 

HtmlCleaner.getInnerHtml(root); 

String html = "<" + root.getName() + ">" + htmlCleaner.getInnerHtml(root) + "</" + root.getName() + ">"; 
5

使用的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); 
+1

其實,這個答案應該被接受的答案。此方法提供完整的HTML,而無需手動注入根節點。 – mmdemirbas

0
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties); 

String html = xmlSerializer.getAsString(rootTagNode); 

上述方法有一個問題,它將修剪html標籤中的內容,例如,

這是段落1。

will become 

這是1款。

而且它是getSingleLineOfChildren函數執行修剪操作。所以,如果我們從網站獲取數據並希望保持格式如tuckunder。

PS:如果一個HTML標籤有子標籤,父標籤contetn不會trimed,

例如<p> this is paragraph1. <a>www.xxxxx.com</a> </p>將保持空白之前「這是1款」