Je suis assez nouveau à fourmi et je regarde les tâches. J'essaie de générer un fichier XML. Dois-je appeler un processus externe ou peut-il avoir une façon de faire cela? Cela pourrait être aussi simple que d'envoyer une chaîne à un fichier TXT et de l'enregistrer en tant que .xml. Est-ce possible? P>
4 Réponses :
Vous pourriez faire cela, bien que cela me semble plus comme quelque chose que vous voudriez script à l'avance, ou quelque chose que vous pourriez appeler à partir de la fourmi.
La tâche serait: p>
<echo file="my.xml"><!--put escaped xml here--></echo>
Vous pouvez utiliser le Je l'ai utilisé pour remplacer une constante Si vous voulez faire un traitement plus complexe, vous devez regarder le remplacer code>
tâche à Remplacez une chaîne donnée dans un modèle et enregistrez-la sous XML.
Un exemple simple, comme on le voit dans la documentation d'ant: @Version @ code> par l'identifiant de construction réel dans un projet Java, pour Exemple. P>
xslt code>
tâche. Exemple d'ennemi, pour générer une documentation, avec la date code> Remplacer dans la sortie, vous pouvez utiliser quelque chose comme: p>
La bonne réponse dépend de ce que vous essayez réellement de faire. p>
Vous pouvez créer un minuscule document XML en utilisant Echo Remplacement de la tâche et de l'argument, Mais cela devient difficile de maintenir très vite. p>
Si votre objectif est de générer un document XML qui est principalement constitué de valeurs remplacés, vous devez rechercher un document de modèle, puis utiliser le copie avec filtrage tâche. p>
Si vous devez modifier la structure du document en fonction des données d'Ant (ou collectées de quelque part d'autre), utilisez le La tâche XSLT va être un meilleur ajustement. Le problème avec XSLT est qu'il n'est pas toujours simple à utiliser (XSLT utilise la programmation fonctionnelle, non la programmation procédurale). P>
Vous trouverez peut-être que la réponse correcte est de Écrivez votre propre tâche Ant Cela fera exactement ce que vous voulez, comme vous le souhaitez. P>
Si vous pouvez mieux décrire ce que vous essayez d'atteindre, je suis sûr que quelqu'un sera heureux de fournir une réponse plus précise. P>
Merci, je suis allé avec copier avec filtrage, fonctionne très bien!
Juste une question "Edge-case" - la tâche "copie-filtre" gère-t-elle correctement les valeurs contenant des caractères XML spéciaux (<, etc.)
Copier avec le filtre est Dumb - tout ce qu'il fait est copier des octets, avec la substitution de valeur. L'astuce est que vous définissez les valeurs à l'intérieur d'un fichier de construction XML. Si vous pouvez définir correctement les valeurs en premier lieu, copier-filtre les remplacera bien.
Lorsque vous devez traiter de tout type de traitement XML dans votre flux de travail ant, le xmltask strong> est fortement recommandé. Documentation très détaillée et bon soutien. Tout ce dont vous avez besoin à côté de celui-ci est un Connaissances XPath forte> a >. Ici => un autre Article utile fort> p>
N'est-ce pas le
remplacer code>
la tâche assez pour quoi vous voulez faire ?Merci, ces réponses sont toutes très utiles.