WebEngine.getDocument
powraca org.w3c.dom.Document
nie JavaScript dokument, który można się spodziewać sądząc po kodzie.
Niestety, wydrukowanie org.w3c.dom.Document
wymaga sporo kodowania. Możesz wypróbować rozwiązanie od What is the shortest way to pretty print a org.w3c.dom.Document to stdout?, zobacz poniższy kod.
Należy pamiętać, że przed rozpoczęciem pracy z Document
należy zaczekać na załadowanie dokumentu. To dlatego LoadWorker
jest tutaj:
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();
}
Twoja metoda pobiera brakującą treść jeśli strona zawiera błędy html ex: Jestem bardzo zaniepokojony tym temacie, jeśli masz dylemat proszę proszę pomóc –