Avoir une application Java étendue qui effectue de nombreuses modifications, y compris la fusion de fichiers xml. Ceci est fait en utilisant des classes dom et semble fonctionner correctement. À la fin je veux formater le xml résultant afin qu'il soit plus facilement lu et stocker en tant que chaîne. J'ai commencé à faire ça avec dom aussi, mais cela limite la taille des fichiers que je peux mettre en forme.
Code actuel est:Utilisation de SAX pour exécuter une transformation sur un noeud
public String parseToString(Node node) {
Transformer transformer = null;
StringBuffer buffer = null;
try {
Transformer = TransformerFactory.newInstance().new Transformer();
--- set some OutputProperties ---
StringWriter stringWriter = new StringWriter(512);
transformer.transform(new DOMSource(node), new StreamResult(stringWriter));
buffer = stringWriter.getBuffer();
stringWriter.close();
--- catch phrases ---
return(buffer.toString());
}
Ma compréhension est que pour utiliser SAX Je dois remplacer « nouveau DOMSource() » avec « nouvelle StreamSource() », mais pour ce faire, je dois convertir le nœud (en fait le document complet) en une chaîne. Quelle est la meilleure façon de le faire sans manger plus de mémoire?
Avez-vous regardé vtd-xml? Il est beaucoup plus facile à utiliser que SAX, et vous êtes beaucoup moins susceptible de manquer de mémoire? –