Quel est le moyen le plus simple d'obtenir la représentation String d'un document XML ( org.w3c.dom.Document
)? C'est-à-dire que tous les nœuds seront sur une seule ligne.
À titre d'exemple, de
<root>
<a>trge</a>
<b>156</b>
</root>
(ce n'est qu'une représentation arborescente, dans mon code c'est un org.w3c.dom.Document
objet, donc je ne peux pas le traiter comme une chaîne)
à
"<root> <a>trge</a> <b>156</b> </root>"
Merci!
Réponses:
En supposant que
doc
votre instance deorg.w3c.dom.Document
:la source
replaceAll
n'est probablement pas nécessaire si vous ajoutez une autre propriété de sortie:transformer.setOutputProperty(OutputKeys.INDENT, "no");
writer.getBuffer().toString()
can just bewriter.toString()
OutputKeys.INDENT
ligne, car vous pouvez également la définir"yes"
pour conserver l'espace blanc - si c'est ce que vous voulez (dans ma situation, j'ai trouvé que la simple suppressionreplaceAll
ne fonctionnait pas pour inclure l'espace blanc dans le chaîne).Utiliser le XMLSerializer Apache
voici un exemple: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
vous pouvez vérifier cela aussi
http://www.netomatix.com/XmlFileToString.aspx
la source
Vous devez d'abord vous débarrasser de tous les caractères de nouvelle ligne dans tous vos nœuds de texte. Ensuite, vous pouvez utiliser une transformation d'identité pour générer votre arborescence DOM. Regardez le javadoc pour
TransformerFactory#newTransformer()
.la source