hbspike Geschrieben 26. August 2013 Teilen Geschrieben 26. August 2013 Hallo zusammen. Ich bin momentan dabei ein HTML-Dokument zu filtern. Filtern bedeutet, dass nur bestimmte Elemente aus dem HTML-Dokument extrahiert werden. Diese Elemente möchte ich jetzt in ein neues Dokument importieren bzw adoptieren. Jedoch funktioniert keins von beidem. Erstmal mein Code: Document domDoc = builder.newDocument(); Element tempHtmlBlockElement = domDoc.createElement("html"); domDoc.appendChild(tempHtmlBlockElement); List<Node> rubrikNodes = new ArrayList<Node>(); List<Node> ausgabeNodes = new ArrayList<Node>(); ... Fülle die Liste, das Filtern funktioniert und ich erhalte auch alle enthaltenen Elemente ... ... for(Node tempNode : rubrikNodes) { //Beim Versuch die Node zu importieren, schmeißt mir Java eine //"org.w3c.dom.DOMException: DOM method not supported" Exception Node clonedTempNodeAdopted = domDoc.importNode(tempNode, true); //Versuche ich die Node zuerst zu Clonen und dann dem neuen Dokument "zuzuweisen" durch "adoptNode", //bekomme ich eine null-Node als Ergebnis der "adoptNode"-Funktion. Lasse ich das adoptNode weg, wird eine //"WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it." -Exception geworfen. // Was auch korrekt ist... Node clonedTempNode = tempNode.cloneNode(true); clonedTempNode = domDoc.adoptNode(clonedTempNode); tempHtmlBlockElement.appendChild(clonedTempNode); } for(Node tempNode : ausgabeNodes) { ... } Jetzt meine Frage, mache ich etwas falsch? Ich benutze JDK6 (1.6.0_17 bzw 1.6.0_30). Könnte es vielleicht auch daran liegen? Oder sollte ich eine andere Dom-Implementierung benutzen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 26. August 2013 Autor Teilen Geschrieben 26. August 2013 (bearbeitet) Noch zu erwähnen wäre, dass ich zum parsen JTidy r938 benutze. Bearbeitet 26. August 2013 von hbspike Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.