2008-11-25 7 views
0

Je travaille sur l'automatisation de la configuration de plusieurs serveurs JBoss, ce qui implique la modification d'un nombre important de fichiers XML. Je voudrais scripter autant que possible toutes ces modifications dans le script. Mais les outils "standards" (sed, grep et al) ne fonctionnent pas bien avec XML. Sans nécessairement recourir à un langage de niveau supérieur, comment puis-je créer un script, par ex. l'insertion d'un snipper XML donné après un élément XML donné dans un certain fichier?Ajustement des fichiers de configuration XML à partir d'un script

Say, par exemple, que mon jboss-log4j.xml ressemble

<!-- ====================== --> 
<!-- More Appender examples --> 
<!-- ====================== --> 

<!-- Buffer events and log them asynchronously --> 
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <appender-ref ref="FILE"/> 
    <!-- 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="SMTP"/> 
    --> 
</appender> 

et que je veux ajouter un nouvel élément appender-ref. Quelle est la manière la plus simple de le faire à partir d'un script?

Répondre

1

Généralement, je vais le faire en écrivant une feuille de style XSL et en appelant SAXON à partir d'un script.

+0

Ou xsltproc, http://www.xmlsoft.org/XSLT/xsltproc2.html –

0

NAnt, le cousin .NET de Ant, a XmlPeek et XmlPoke les tâches que j'ai utilisées pour très bien faire dans l'édition de fichiers de configuration WCF qui sont assez complexes. Si vous pouvez trouver des tâches similaires pour Ant, alors vous pourriez avoir un gagnant. Alternativement, une autre approche pourrait être d'avoir une version «modèle» du fichier de configuration qui contient% placeholders% approprié pour remplacer avec un des outils de traitement de texte plus classiques.

Une pensée - Ant a l'idée d'un filter chain, qui peut être utilisé pour transformer un fichier pendant la copie - NAnt a le même concept et je l'ai récemment utilisé pour configurer correctement les fichiers de déploiement.

Questions connexes