Veröffentlicht 26. August 201311 j 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?
26. August 201311 j Autor Noch zu erwähnen wäre, dass ich zum parsen JTidy r938 benutze. Bearbeitet 26. August 201311 j von hbspike
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.