2011-08-25 2 views

Répondre

7

Voici l'exemple de code:

HtmlCleaner htmlCleaner = new HtmlCleaner(); 

TagNode root = htmlCleaner.clean(url); 

HtmlCleaner.getInnerHtml(root); 

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

Utilisez une sous-classe de org.htmlcleaner.XmlSerializer, par exemple:

// 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

En fait, cette réponse doit être acceptée réponse . Cette méthode donne le HTML complet sans injection manuelle du noeud racine. – mmdemirbas

0
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties); 

String html = xmlSerializer.getAsString(rootTagNode); 

la méthode ci-dessus a un problème, il va couper le contenu dans l'étiquette html, par exemple,

c'est le paragraphe 1.

will become 

c'est paragraphe 1.

et il est getSingleLineOfChildren fonction effectue l'opération de rognage. Donc, si nous récupérons des données à partir du site Web et que nous voulons conserver le format tel que caché.

PS: si une étiquette HTML sur l'étiquette pour les enfants, l'étiquette mère contetn ne sera pas trimed,

par exemple <p> this is paragraph1. <a>www.xxxxx.com</a> </p> gardera les espaces avant « est paragraphe 1 »