mettre à jour un fichier xml avec ANT
salut à tous,
je cherche à résoudre un problème depuis deux jours, mais en vain :(
en fait j'ai un fichier properties que je charge à partir de mon script ant.
et en suite je veux utiliser le valeurs récupérées pour mettre à jour un autre fichier xml.
mon fichier properties il a la forme suivante:
Citation:
appli.bat.fichier.type=xml
appli.bat.fichier.dir=classes
appli.bat.fichier.parameter.param1=test1
efluid.batch.fichier.parameter.param2=test2
efluid.batch.fichier.parameter.param2=test3
voici mon code: à savoir que ListeParameter${fichier}=param1,param2,param3
Citation:
<case value="xml">
<copy file="${source.dir}/${fichier.dir}/${fichier}.${fichier.type}" todir="${cible.dir}/${fichier.dir}"/>
<propertycopy name="ListeParams" from="ListeParameter${fichier}" override="true" />
<foreach list="${ListeParams}" delimiter="," target="majFichierXML" param="param" inheritall="true"/>
<target name="majFichierXML">
<if>
<isset property="appli.bat.fichier.parameter.${param}"/>
<then>
<propertycopy name="valeurxml" from="appli.bat.fichier.parameter.${param}" override="true" />
<!-- <propertyfile file="${cible.dir}/${fichier.dir}/${fichier}.${fichier.type}">
<entry key="${param}" value="${valeurxml}"/>
</propertyfile> -->
<echoxml file="${cible.dir}/${fichier.dir}/${fichier}.${fichier.type}" append="true">
<param>${valeurxml}</param>
</echoxml> -->
<!--*****************************************************************************-->
<!-- <replaceregexp file="${cible.dir}/${fichier.dir}/${fichier}.${fichier.type}"
match="${param}=([^\.]*)"
replace="${param}=${valeurxml}"
byline="true"/> -->
<!--*****************************************************************************-->
<!-- <propertyregex property="paramXML" input="${param}" casesensitive="false"> -->
<!-- <replaceregexp pattern="<${param}>" replace="<${param}>${valeurxml}</${param}> " /> -->
<!-- </propertyregex> -->
<!--*****************************************************************************-->
<echo>
-param=${param}
-valeurxml=${valeurxml}
==>${param}=${valeurxml}
</echo>
<property name="xml.xpath" value="${param}/text()" />
<xmltask source="${source.dir}/${fichier.dir}/${fichier}.${fichier.type}" dest="${cible.dir}/${fichier.dir}/${fichier}.${fichier.type}" encoding="iso-8859-1">
<replace path="${xml.xpath}" withText="${valeurxml}"/>
</xmltask>
</then>
</if>
</target>
j'ai utilisé propertyfile mais ce task permet mettre dans le fichier cible :
parm1=test1
param2=test2
...
j'ai utilisé echoxml task, mais le problème c'est que je n'arrive pas à écrire dans
ce task un truc genre: <${param}>${valeurxml}</${param}> car on ne peut pas mettre $ dans une balise
j'ai utilisé finalement xmltask mais ça ne fait toujour pas ce que je veux.
en suivant ce lien :
http://www.deaded.com/staticpages/index.php/xmltask
http://www.deaded.com/staticpages/index.php/xmltask
S'il vous plaît si quelqu'un à une idée, merci de la partager :)