Hi,
ich habe alles mit Interesse verfolgt und bin gerade mit einem ähnlichen Problem beschäftigt. Eine Lösung mittels JDOM entfällt, da die XML-Dateien recht groß sein können. So gesehen fand ich den Hinweis mit der Transformer sehr gut. Allerdings werden dabei keine Einrückungen vorgenommen, so wie ich mir das vorgestellt habe. In der folgenden Methode wird eine schon bestehende valide XML-Datei eingelesen und soll in einer formatierten ausgegeben werden.
Was mache ich hier falsch, dass keine Einrückungen in der Ausgabe erfolgen?
(Ein- und Ausgabedatei sind gleich, wenn ich das so verwenden.)
Tschau
Lutz
ich habe alles mit Interesse verfolgt und bin gerade mit einem ähnlichen Problem beschäftigt. Eine Lösung mittels JDOM entfällt, da die XML-Dateien recht groß sein können. So gesehen fand ich den Hinweis mit der Transformer sehr gut. Allerdings werden dabei keine Einrückungen vorgenommen, so wie ich mir das vorgestellt habe. In der folgenden Methode wird eine schon bestehende valide XML-Datei eingelesen und soll in einer formatierten ausgegeben werden.
Code:
public boolean prettyPrint(String strFileIn, String strFileOut){
boolean bReturn = false;
try{
File fileIn = new File(strFileIn);
PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(strFileOut),"UTF-8"));
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputPropertiesFactory.S_KEY_INDENT_AMOUNT,"3");
transformer.transform(new StreamSource(new FileInputStream(fileIn)), new StreamResult(out));
bReturn = true;
}
catch (UnsupportedEncodingException e) {
log.error(e.getMessage());
}
catch (FileNotFoundException e) {
log.error(e.getMessage());
}
catch (TransformerConfigurationException e) {
log.error(e.getMessage());
}
catch (TransformerFactoryConfigurationError e) {
log.error(e.getMessage());
}
catch (TransformerException e) {
log.error(e.getMessage());
}
return bReturn;
}
Was mache ich hier falsch, dass keine Einrückungen in der Ausgabe erfolgen?
(Ein- und Ausgabedatei sind gleich, wenn ich das so verwenden.)
Tschau
Lutz