2009-07-04 5 views
1

Je suis en train d'écrire un fichier XML avec le code suivant:texte XML tiret avec transformateur

Source source = new DOMSource(rootElement); 
Result result = new StreamResult(xmlFile); 
Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
transformer.transform(source, result); 

et c'est le fichier de sortie:

<?xml version="1.0" encoding="UTF-8"?> 
<feature-sequences> 
<sequence> 
<initial-frame>0</initial-frame> 
<points> 
<point> 
<x>274.0</x> 
<y>316.0</y> 
</point> 
... 

Je veux que ce dernier soit en retrait, pour exemple:

<?xml version="1.0" encoding="UTF-8"?> 
<feature-sequences> 
    <sequence> 
    <initial-frame>0</initial-frame> 
    <points> 
     <point> 
     <x>274.0</x> 
     <y>316.0</y> 
     </point> 
... 

l'appel à setOutputProperty dans mon code ne résout pas le problème, il est en fait le texte ne w lignes (mais pas en retrait).

Quelqu'un at-il une solution à cela, sans avoir besoin de bibliothèques externes?

Répondre

6

Vous pourriez avoir à préciser le montant des espaces pour indenter ainsi:

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); 
+0

merci beaucoup, c'est exactement ce que je cherchais! mais je pense que ce nom de propriété est très bizarre. – cd1

+0

Heureux que ça a marché! La seule raison pour laquelle je suis au courant, c'est parce que je me suis fait avoir par moi-même. Les API XML en Java sont horribles en général. –

Questions connexes