Zum Inhalt springen

DOM - import/adopt eine Node


hbspike

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...