Как преобразовать документ Jsoup в документ W3C?

Я создал документ Jsoup путем анализа внутренней HTML-страницы,

public Document newDocument(String path) throws IOException {

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

Я хотел бы преобразовать документ Jsoup в мой org.w3c.dom.DocumentДля этого я использовал доступную библиотеку DOMBuilder, но при разборе получаю org.w3c.dom.Document как ноль. Я не могу понять проблему, попытался найти, но не смог найти ответ.

Код для создания документа W3C DOM:

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

Может кто-нибудь, пожалуйста, помогите мне в этом?

2 ответа

Решение

Чтобы получить документ jsoup через HTTP, позвоните Jsoup.connect(...).get(), Чтобы загрузить документ jsoup локально, позвоните Jsoup.parse(new File("..."), "UTF-8"),

Призыв к DomBuilder верно.

Когда ты сказал,

Я использовал для этого доступную библиотеку DOMBuilder, но при разборе я получаю значение org.w3c.dom.Document как ноль.

Я думаю, вы имеете в виду: "Я использовал для этого доступную библиотеку DOMBuilder, но при печати результата я получаю [#document: null]"По крайней мере, это был результат, который я увидел, когда попытался напечатать w3cDoc объект - но это не значит, что объект является нулевым. Я смог пройтись по документу, позвонив getDocumentElement а также getChildNodes,

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

    try {
        jsoupDoc = Jsoup.connect("http://stackru.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());
}

Кроме того, Jsoup предоставляет класс W3CDom с методом fromJsoup, Этот метод преобразует документ Jsoup в документ W3C.

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

ОБНОВИТЬ:

Другие вопросы по тегам