26. Februar 200224 j Hallo zusammen! ich stehe vor einen Problem, bei dem ich nicht mehr weiterkomme. Ich habe eine xml-Datei im Format: <Freight Data> <TransportDocument> ..... </TransportDocument> <TransportDocument> ..... </TransportDocument> <TransportDocument> ..... </TransportDocument> . . . </Freight Data> Pro TransportDocument soll jetzt ein eigenes Dokument erstellt werde im Format: <Freight Data> <TransportDocument> ..... </TransportDocument> </Freight Data> Ich habe das so gelößt, dass ich mit dem DomParser erstmal alle Transport-Dokumente auslese, und mir die resultierende NodeList erstmal merke. Anschliessend kopiere ich dann die Ursprungs-Datei NodeList.getLenght() mal. Lösche alle ChildNodes und versuche dann jeweils ein Transport Document pro File wieder anszuhängen. Das sieht dann so aus: private void createDocumentCopies() throws Exception{ int i; String tempFileName; File tempFile; for (i = 0; i < transportDocuments.getLength(); i++) { documentCounter++; tempFile = copyFile(file); DOMParser tempParser = new DOMParser(); tempParser.parse(new InputSource(new FileReader(tempFile))); Document tempDoc = tempParser.getDocument(); removeAllChildNodes(tempDoc.getElementsByTagName(FREIGHT_DATA_TAG).item(0)); Node tempNode = transportDocuments.item(i); tempDoc.getElementsByTagName(FREIGHT_DATA_TAG).item(0).appendChild(tempNode); //hier tritt der Fehler auf writeXml(tempDoc); } } Mein Problem ist jetzt, dass beim appendChild() folgeden Exception auftritt: com.ibm.xml.dom.DOMExceptionImpl java.lang.Throwable(java.lang.String) java.lang.Exception(java.lang.String) java.lang.RuntimeException(java.lang.String) org.w3c.dom.DOMException(short, java.lang.String) com.ibm.xml.dom.DOMExceptionImpl(short, java.lang.String) org.w3c.dom.Node com.ibm.xml.dom.NodeImpl.insertBefore(org.w3c.dom.Node, org.w3c.dom.Node) org.w3c.dom.Node com.ibm.xml.dom.NodeImpl.appendChild(org.w3c.dom.Node) . . . Hat irgendjemand eine Idee, warum das nicht funktioniert??? Vielen Dank. Gruß Mirko
26. Februar 200224 j Ich geb mir mal selber die Antwort... man muß die Node erst im anderen Document mit import(aNode, true); importierten die daraus folgende Node kann man dann anhängen... Das geht
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.