Je crée un document XML. Je l'ai eu à indenter en utilisant
est-il possible d'obtenir Java utiliser des onglets au lieu d'espaces pour indenter? Et comment? P> transformerfactory.setattribute ("numéro d'indent", nouvel entiers (2));
Transformer.setOutputProperty (SortieKeys.indent, "Oui"); Code> P>
3 Réponses :
Je pense pas. p>
Vous pouvez obtenir le résultat et le traiter, remplacer l'appelant Mais je recommanderais contre cela - les onglets ne sont pas indépendants de la plate-forme. P> str.replace ("\ n", "\ n \ t") code> (ou quel que soit le nombre d'espaces que vous voulez). P >
@Bozho, il peut être dangereux de faire un appel str.replace CODE> car il peut finir par remplacer certaines valeurs d'attribut, etc. à l'onglet dans l'espace; Très indésirable n'est-ce pas?
Cela ne remplace que le premier niveau d'indentation.
Oui, les onglets sont considérés comme mauvais par quelques-uns. Toutefois, si vous souhaitez utiliser TransformFactory code> et souhaitez modifier le comportement d'indentation pour utiliser des onglets à la place des espaces, vous devez fournir votre propre implémentation de
contenthandler code>. Ensuite, passez votre implémentation de contenthandler dans un nouveau
SaxResult code> - transmettant comme "résultat" au "code> transformateur.transform (...) code>. Beaucoup de cerceaux à sauter à travers.
Une autre considération peut être d'utiliser un XSLT intelligent sur votre sortie. P>
Non, pas en général. La spécification XSLT ne permet pas de spécifier ce que les espaces utilisent à l'utilisation de l'empiècement lors de l'indentation. P>
Cela pourrait toutefois être un élément spécifique du processeur XSLT à configurer. Vérifiez la documentation pour celle que vous utilisez. P>
Si vous voulez vraiment cela, vous pouvez utiliser un script Afterburfer XSLT sur la sortie qui fait ce que vous voulez faire sur Text () - Nœuds. p>
Quelle différence cela ferait-il d'avoir des onglets au lieu des espaces? Votre éditeur aime mieux les onglets?
transformer.setoutoutProperty ("{ xml.apache.org/xslt } indent-un montage", " 4 "); a fait le tour pour moi. Ce n'est probablement aucune garantie et il semble en fait être fortement dépendant de la version de Java que vous utilisez. Personnellement, onglets vs. Les espaces ne veulent rien dire quand il s'agit simplement d'être un fichier de données.