DOM Document in XML Datei schreiben

sylo

Bekanntes Mitglied
Hi zusammen

folgendes Problem.

Ich habe eine XML-Datei die ich mit DOM parse, evtl ändere und nun zurückschreiben möchte.

Dazu benutze ich folgendes:
Java:
public void saveAsFile(Document doc, String storedFile) {
		try {
			DOMSource source = new DOMSource(doc);

			File file = new File(storedFile);
			StreamResult result = new StreamResult(file);

			Transformer xformer = TransformerFactory.newInstance().newTransformer();
			xformer.transform(source, result);
		} catch (TransformerConfigurationException e) {

		} catch (TransformerException e) {

		}
		
	}

Das doc und die storedFile werden richtig erkannt. Aber wenn die transform()-Methode aufgerufen wird, steht in der Konsole "FEHLER: ' ' " und er schreibt mir in die gewünschte Datei nichts rein. Die ist dann komplett leer.

Woran könnte das liegen?

Grüße
sylo
 

Murray

Top Contributor
1. Wie kann der gepostete Code "Fehler" in die Konsole schreiben? Hast du da etwas unterschlagen?

2. Das
Java:
        } catch (TransformerConfigurationException e) {
 
        } catch (TransformerException e) {
 
        }
ist gelinde gesagt sträflich leichtsinnig.
Wenn es schon keine echte Fehlerbehandlung gibt, dann je nach Geschmack mindestens so:
Java:
        } catch (TransformerConfigurationException tce) {
               tce.printStackTrace();
        } catch (TransformerException te) {
               te.printStackTrace(); 
        }

oder so:

Java:
        } catch (TransformerConfigurationException tce) {
               throw new RuntimeException( tce);
        } catch (TransformerException te) {
               throw new RuntimeException( te);
        }
 

sylo

Bekanntes Mitglied
Die Ausgabe kommt wohl vom Transformer. Kann ich aber nicht genau sagen. Dieser Fehler wird aber nicht von mir gehandelt sondern vom Transformer selbst.

Aber du hast recht. So kann man die Exceptions natürlich nicht stehen lassen.
Nachdem ich das geänderte habe, spuckt er mir folgenden Fehler aus:

Java:
FEHLER:  ''
javax.xml.transform.TransformerException: java.lang.NullPointerException
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:651)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:281)
	at view.GUIElements.saveAsFile(GUIElements.java:390)
	at view.GUIElements.saveFile(GUIElements.java:373)
	at elements.CustomJMenuBar$3.actionPerformed(CustomJMenuBar.java:72)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
	at java.awt.Component.processMouseEvent(Component.java:5501)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
	at java.awt.Component.processEvent(Component.java:5266)
	at java.awt.Container.processEvent(Container.java:1966)
	at java.awt.Component.dispatchEventImpl(Component.java:3968)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1778)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.NullPointerException
	at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.characters(ToUnknownStream.java:312)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:229)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:121)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:85)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:596)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:642)
	... 30 more
---------
java.lang.NullPointerException
	at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.characters(ToUnknownStream.java:312)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:229)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:215)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:121)
	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:85)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:596)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:642)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:281)
	at view.GUIElements.saveAsFile(GUIElements.java:390)
	at view.GUIElements.saveFile(GUIElements.java:373)
	at elements.CustomJMenuBar$3.actionPerformed(CustomJMenuBar.java:72)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
	at java.awt.Component.processMouseEvent(Component.java:5501)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
	at java.awt.Component.processEvent(Component.java:5266)
	at java.awt.Container.processEvent(Container.java:1966)
	at java.awt.Component.dispatchEventImpl(Component.java:3968)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1778)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Kannst du was damit anfangen?
 

sylo

Bekanntes Mitglied
Wenn ich debugge zeigt er mir in der Zeile
Java:
xformer.transform(source, result);
noch an, dass source und result nicht null sind. doc ist der Baum den ich mit documentBuilder.parse(xmlFile) bekommen habe und der wird richtig erkannt.
 

sylo

Bekanntes Mitglied
Hab den Fehler gefunden.

Beim Hinzufügen von Elementen in das DOM Dokument füge ich zusätzlich zu jedem "normalen" Node noch einen Text-Node.
Java:
Text text1 = parser.getDomXML().createTextNode(null);
node.insertBefore(text1, null)
genau an dieser Stelle hat er das Problem mit dem NullPointer.

Die Zeile einfach in
Java:
Text text1 = parser.getDomXML().createTextNode("");
geändert und schon ging es.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S XML Document Parsen und Ausgeben mit Suchfunktion XML & JSON 21
L XML Document Transform StackOverflowError XML & JSON 1
B Wie kann man das ecncoding in einem vorhandenen Document-Objekt ändern? XML & JSON 2
M java.lang.RuntimeException: Failed to parse document XML & JSON 4
sambalmueslie JAXB - Unmarshall ein XML-Document das aus zwei XSD Definitionen besteht XML & JSON 8
L invalide xml document parsen?! XML & JSON 2
G Nodes in Document kopieren, nur die Childs, die noch nicht existieren XML & JSON 7
K Document null bei builder.parse XML & JSON 2
B jdom document aus string erzeugen? XML & JSON 1
G document is invalid: no grammar found. XML & JSON 9
M Wie kann ich aus ein Document-Tree ein PDF generieren XML & JSON 2
G Ein DOM-Document dem Sax übergeben? XML & JSON 2
S org.jdom.document in String umwandeln. XML & JSON 2
P Aus einem Node ein Document erstellen XML & JSON 2
R XML Document als String XML & JSON 2
C Kompliziertes XML-Document, wie lese ich es ein? XML & JSON 4
N FileStream auf Document XML & JSON 22
M XPath Problem im Zusammenhang mit document() XML & JSON 2
B XML-Document mit Java erzeugen und zuruecksenden XML & JSON 1
W XML-Document auslesen XML & JSON 2
T Tags in XML Datei mit Java erstellen XML & JSON 3
S XML Datei speichern nicht möglich XML & JSON 13
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
MiMa Buch Metadaten aus XML Datei parsen XML & JSON 48
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
R xlsx-Datei mit Apache POI einlesen XML & JSON 18
S Validierung einer XML-Datei - Führende Leerzeichen und Tabs XML & JSON 10
S CSV Datei einlesen und XML Ausgeben XML & JSON 2
U jar Datei mit ant erstellen XML & JSON 1
P wie kriege ich eine *.dtd Datei mit in die ausführbare *.jar? XML & JSON 2
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
D XML-Datei per Button erstellen XML & JSON 3
K JAR-File mit XML-Datei XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
E JTreedaten in eine XML Datei speichern XML & JSON 3
D Int-Werte in XML-Datei schreiben (DOM) XML & JSON 2
B xsd-Datei ins jar file XML & JSON 5
T Formulardaten in XML Datei speichern XML & JSON 5
H Wsdl datei XML & JSON 2
D Große XML-Datei in einzel Dateien splitten XML & JSON 3
S Neue Inhalte in XML-Datei einfügen XML & JSON 0
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
M XML-Datei mit JAXB und 2 Namespaces XML & JSON 0
J XML - Datei wird nicht ganz angezeigt XML & JSON 2
P (Eclipse)Ant Script, .jar Datei erstellen mit MANIFEST.MF XML & JSON 12
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
E ResultSet als XML Datei speichern XML & JSON 7
M XStream, CSV Datei XML & JSON 9
A Frage zu bestehender XML Datei XML & JSON 6
A Simple Constructor Injection Datei-Pfad XML & JSON 6
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
A XML datei lesbar speichern (eingerückt) XML & JSON 7
M XML Datei Parsen XML & JSON 4
Airwolf89 HTML Datei mit SAXBuilder laden hängt sich auf XML & JSON 4
N Java Code aus XML Datei generieren XML & JSON 8
D Aus lesen einer XML-Datei ( 1 root, 3 childs) XML & JSON 7
D Wie XML Datei einlesen und HTML entities übernehmen? XML & JSON 3
R XLM Datei lesen Ändern (kompliziertes Search and Replace) und Speichern XML & JSON 12
K Kurze XML Datei Parsen XML & JSON 5
S XSD-Datei zulässige Werte auslesen XML & JSON 3
M XML Datei heapspace erreicht XML & JSON 3
M Große Datei auslesen/in dieser suchen XML & JSON 2
S Konforme XML Datei über XSD erstellen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4
T Inhalt einer .xml Datei auf Javaoberfläche wiedergeben XML & JSON 4
M XML Datei drucken XML & JSON 8
T Daten aus Programm in XML Datei speichern XML & JSON 2
D XSD Datei erstellen XML & JSON 4
L [SAX] Geschachtelte XML Datei parsen XML & JSON 3
E XML Datei mit DOM auslesen (Text mit Attributen) XML & JSON 2
G txt. Datei in xml datei konvertieren XML & JSON 21
K XML Datei in ein Java package „einbinden" XML & JSON 3
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
L xml Datei parsen ohne End-Tag XML & JSON 6
C if-Abfrage mit Datei Variable aus XML-Datei XML & JSON 2
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
F XML Datei in Java einlesen XML & JSON 4
J Objektstruktur aus XML-Datei erzeugen XML & JSON 21
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
E XML Datei einlesen und Elemente in der Console ausgeben XML & JSON 6
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
ARadauer Aus XML Datei Objekte erstellen... XML & JSON 3
N MalformedByteSequenceException bei Lesen aus XML Datei XML & JSON 2
H xml-Datei mit Attributen einlesen XML & JSON 3
A XML-Datei: Ab wann kritische Größe erreicht? XML & JSON 4
multiholle XML Datei elegant verarbeiten XML & JSON 14
M XMI-Datei auslesen XML & JSON 4
T Ließt keine XML Datei XML & JSON 2
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
J XML-Datei ein Array einlesen XML & JSON 10
M xml - datei erstellen XML & JSON 2
T Wie einen String(XML Inhalt) in eine XML Datei speichern? XML & JSON 8
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6

Ähnliche Java Themen

Neue Themen


Oben