2011-08-25 10 views
7

से टेक्स्ट में एचटीएमएल साफ़ करना प्राप्त करना मैं HTML क्लीनर से प्राप्त HTML को देखना चाहता हूं। मुझे लगता है कि टैगनोड पर धारावाहिक नामक एक विधि है, हालांकि इसे नहीं पता कि इसका उपयोग कैसे किया जाए। क्या किसी के पास इसके लिए कोई नमूना कोड है?HtmlCleaner

HtmlCleaner htmlCleaner = new HtmlCleaner(); 

TagNode root = htmlCleaner.clean(url); 

HtmlCleaner.getInnerHtml(root); 

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

उत्तर

7

यहाँ नमूना कोड

// 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); 
5

उदाहरण के लिए, org.htmlcleaner.XmlSerializer का एक उपवर्ग का उपयोग करें::

धन्यवाद Nayn

+1

वास्तव में, इस सवाल का जवाब स्वीकार किया जाना चाहिए जवाब "इस PARAGRAPH1 है" । यह विधि मैन्युअल रूप से रूट नोड इंजेक्शन के बिना पूर्ण HTML देता है। – mmdemirbas

0
XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties); 

String html = xmlSerializer.getAsString(rootTagNode); 

विधि ऊपर कोई समस्या है, यह एचटीएमएल लेबल में सामग्री ट्रिम करेगा, उदाहरण के लिए,

यह अनुच्छेद 1 है।

will become 

इस PARAGRAPH1 है।

और यह getSingleLineOfChildren फ़ंक्शन ट्रिम ऑपरेशन करता है। तो अगर हम वेबसाइट से डेटा प्राप्त करते हैं और प्रारूप को टकंडर रखना चाहते हैं।

पुनश्च: अगर एक एचटीएमएल लेबल बच्चों लेबल है, माता पिता के लेबल contetn trimed नहीं किया जाएगा,

उदाहरण <p> this is paragraph1. <a>www.xxxxx.com</a> </p> से पहले खाली स्थान के पास रखेंगे