2013-07-23 5 views
6

मैं एक घर में HTML पृष्ठ को पार्स द्वारा एक Jsoup दस्तावेज़ का निर्माण किया है,एक Jsoup दस्तावेज़ को W3C दस्तावेज़ में कैसे परिवर्तित करें?

public Document newDocument(String path) throws IOException { 

    Document doc = null; 
    doc = Jsoup.connect(path).timeout(0).get(); 
      return new HtmlDocument<Document>(doc); 
} 

मैं अपने org.w3c.dom.Document मैं इस के लिए एक उपलब्ध पुस्तकालय DOMBuilder इस्तेमाल किया है, लेकिन Jsoup दस्तावेज़ कन्वर्ट करने के लिए जब पार्स करने चाहेगा मैं org.w3c.dom.Document मिल शून्य के रूप में मैं समस्या को समझने में असमर्थ हूं, खोज करने की कोशिश की लेकिन कोई जवाब नहीं मिला। W3C डोम दस्तावेज़ उत्पन्न करने के लिए

कोड:

Document jsoupDoc=factory.newDocument("http:localhost/testcases/test_2.html")); 
org.w3c.dom.Document docu= DOMBuilder.jsoup2DOM(jsoupDoc); 

किसी कृपया मुझे इस पर मदद कर सकते हैं?

+0

http://svn.apache.org/repos/asf/stanbol/trunk/enhancement-engines/htmlextractor/src/main/java/org/apache/stanbol/enhancer/engines/htmlextractor/impl/DOMBuilder ।जावा –

उत्तर

6

To retrieve a jsoup document via HTTP, Jsoup.connect(...).get() पर कॉल करें। To load a jsoup document locally, Jsoup.parse(new File("..."), "UTF-8") पर कॉल करें।

DomBuilder पर कॉल सही है।

जब आप कहते हैं,

मैं इस के लिए एक उपलब्ध पुस्तकालय DOMBuilder इस्तेमाल किया, लेकिन जब पार्स करने मैं अशक्त के रूप में org.w3c.dom.Document मिल ।

मुझे लगता है कि आपका मतलब है, "मैंने इसके लिए एक उपलब्ध लाइब्रेरी, डोमबिल्डर का उपयोग किया, लेकिन परिणाम प्रिंट करते समय, मुझे [#document: null] मिल गया।" कम से कम, परिणामस्वरूप मैंने देखा कि जब मैंने w3cDoc ऑब्जेक्ट को प्रिंट करने का प्रयास किया - लेकिन इसका मतलब यह नहीं है कि ऑब्जेक्ट शून्य है। मैं getDocumentElement और getChildNodes पर कॉल करके दस्तावेज़ को पार करने में सक्षम था।

public static void main(String[] args) { 
    Document jsoupDoc = null; 

    try { 
     jsoupDoc = Jsoup.connect("http://stackoverflow.com/questions/17802445").get(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    org.w3c.dom.Document w3cDoc= DOMBuilder.jsoup2DOM(jsoupDoc); 
    Element e = w3cDoc.getDocumentElement(); 
    NodeList childNodes = e.getChildNodes(); 
    Node n = childNodes.item(2); 
    System.out.println(n.getNodeName()); 
} 
13

वैकल्पिक रूप से, Jsoup विधि fromJsoup साथ W3CDom वर्ग प्रदान करता है। यह विधि एक Jsoup दस्तावेज़ को W3C दस्तावेज़ में बदल देती है।

Document jsoupDoc = ... 
W3CDom w3cDom = new W3CDom(); 
org.w3c.dom.Document w3cDoc = w3cDom.fromJsoup(jsoupDoc); 

अद्यतन:

  • के बाद से 1.10.3 W3CDom no longer experimental है।
  • Jsoup तक 1.10.2 W3CDom क्लास अभी भी प्रयोगात्मक है।
संबंधित मुद्दे