DOM Baum mit Xerces auseinanderschneiden
-
Hallo,
ich habe folgendes Problem, und bin für jede Antwort dankbar :
Ich lese mit Xerces (Java) ein XML Dokument in einen DOM Baum ein,
und möchte nun Teile des Baumes rausschneiden, und in einem extra
XML File speichern :alt (eine Datei) <e1> <e2> <e3/> <e4/> </e2> <e5> <e6/> <e7/> </e5> </e1> neu : Datei 1 <e2> <e3/> <e4/> </e2> Datei 2 <e5> <e6/> <e7/> </e5>
Gibt es eine Klasse in Xerces, der ich einen Teilbaum uebergeben
kann, und diese schreibt dann eine XML File ?THX
STefan
-
oha DOM
erstmal vorneweg. Bei Java & XML würde ich mir immer
überlegen ob ich nicht JDOM nutze da es angenehmer anwendbar ist.aber zu DOM:
import org.w3c.*; ... private ArrayList splitNodes(Documet doc){ ArrayList parts = new ArrayList(); //die Kinder des root element finden NodeList ls = doc.getFirstChild().getChildNodes(); for(int a=0; a < ls.getLength();a++) { Node tmp = ls.item(a); if((tmp.getNodeType()==Node.ELEMENT_NODE) // ist ein Element &&((tmp.getNodeName()=="e2") ||(tmp.getNodeName()=="e5))) { // ist einer der gewünschten Elemente ArrayList zuweisen parts.add(tmp); } } }
Damit hast du
die beiden Element in der ArrayList, dann brauchst du die nur noch ausgeben.
Ich weiss das leider nur grad wie das mit JDOM geht aus dem Kopf.
Aber mit DOM ist das ziemlich ähnlich. Vielleicht hilfts dir ja dochXMLOutputter outputter = new XMLOutputter(" ",true); FileStream output = new FileOutPutStream("file.xml"); outputter.output(doc,output);