WebEngine.getDocument
रिटर्न जो आप अपने कोड से पहचानने की उम्मीद org.w3c.dom.Document
, नहीं जावास्क्रिप्ट दस्तावेज़।
दुर्भाग्यवश, org.w3c.dom.Document
को मुद्रित करने के लिए बहुत कुछ कोडिंग की आवश्यकता है। आप What is the shortest way to pretty print a org.w3c.dom.Document to stdout? से समाधान का प्रयास कर सकते हैं, नीचे दिए गए कोड को देखें।
ध्यान दें कि Document
के साथ काम करने से पहले दस्तावेज़ लोड होने तक आपको प्रतीक्षा करने की आवश्यकता है। यही कारण है कि LoadWorker
यहाँ प्रयोग किया जाता है:
public void start(Stage primaryStage) {
WebView webview = new WebView();
final WebEngine webengine = webview.getEngine();
webengine.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == Worker.State.SUCCEEDED) {
Document doc = webengine.getDocument();
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
transformer.transform(new DOMSource(doc),
new StreamResult(new OutputStreamWriter(System.out, "UTF-8")));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
});
webengine.load("http://stackoverflow.com");
primaryStage.setScene(new Scene(webview, 800, 800));
primaryStage.show();
}
स्रोत
2013-01-11 18:13:08
आपका विधि यदि साइट एचटीएमएल पूर्व में त्रुटियाँ हैं लापता सामग्री प्राप्त कर देगा: मैं इस विषय के बारे में बहुत चिंतित हूँ अगर आप एक ठीक कृपया कृपया –