2011-08-25 29 views

Trả lời

7

Dưới đây là đoạn code mẫu:

HtmlCleaner htmlCleaner = new HtmlCleaner(); 

TagNode root = htmlCleaner.clean(url); 

HtmlCleaner.getInnerHtml(root); 

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

Sử dụng một lớp con của org.htmlcleaner.XmlSerializer, ví dụ:

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

Trên thực tế, câu trả lời này nên được chấp nhận câu trả lời . Phương pháp này cho HTML đầy đủ mà không cần tiêm nút gốc bằng tay. – mmdemirbas

0
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties); 

String html = xmlSerializer.getAsString(rootTagNode); 

phương pháp trên có một vấn đề, nó sẽ cắt nội dung trong nhãn html, ví dụ:

đây là đoạn1.

will become 

đây là PARAGRAPH1.

và chức năng này hoạt động cắt. Vì vậy, nếu chúng tôi tìm nạp dữ liệu từ trang web và muốn giữ định dạng như tóm tắt.

PS: nếu một nhãn html có nhãn trẻ em, contetn nhãn phụ huynh sẽ không được trimed,

ví dụ <p> this is paragraph1. <a>www.xxxxx.com</a> </p> sẽ giữ khoảng trắng trước khi "đây là PARAGRAPH1"

Các vấn đề liên quan