Programmation.web : XML sans noeud racine
Posté par Alexandre () le 21 décembre 2005
Bonsoir,
Une petite question qui me bloque depuis quelques jours...
J'ai un fichier XML auquel je cherche à appliquer des transformations par XSL, le tout exécuté dans un build ant.
Mais ce fichier XML en entrée ne comporte pas de noeud racine, le bougre !! Tous les noeuds sont au même niveau, un peu comme ceci:
Une petite question qui me bloque depuis quelques jours...
J'ai un fichier XML auquel je cherche à appliquer des transformations par XSL, le tout exécuté dans un build ant.
Mais ce fichier XML en entrée ne comporte pas de noeud racine, le bougre !! Tous les noeuds sont au même niveau, un peu comme ceci:
<noeud1>contenu1</noeud1>
<noeud2>contenu1</noeud2>
<noeud3>contenu1</noeud3>
Et j'aimerais avoir ceci:
<racine>
<noeud1>contenu1</noeud1>
<noeud2>contenu1</noeud2>
<noeud3>contenu1</noeud3>
</racine>
Comment faire ceci en utilisant soit ant soit xsl ??
Merci de votre aide...> Lire le message (2 commentaires, moyenne: 4,5).
Vous avez demandé le commentaire #663941.



'echo' et 'cat' ?
Je peux me tromper, mais les outils de transformation XSL ne fonctionnent qu'avec des fichiers XML valides. Hors un fichier XML sans noeud racine n'est pas valide...
Si tu n'a dans ton fichier effectivement QUE tes ... je pense qu'une simple combinaison de 'echo' et 'cat' suffiraient, non ?
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > fichierfinal.xml
echo "" >> fichierfinal.xml
cat fichiersansracine.xml >> fichierfinal.xml
echo "" >> fichierfinal.xml
Les solutions les plus simples sont parfois largement suffisantes. Par contre, je n'ai aucune idée sur la façon d'intégrer ça dans ant.
[^]Re: 'echo' et 'cat' ?
Avec la tache echo de ant tu peux echoter dans un fichier (attribut file=) : [http://ant.apache.org/manual/CoreTasks/echo.html]. A associer à loadfile pour charger le contenu de ton fichier presque-xml pour l'echoter : [http://ant.apache.org/manual/CoreTasks/loadfile.html]
Sinon regarder du coté de la tache concat : [http://ant.apache.org/manual/CoreTasks/concat.html]
Sinon demande à ceux qui te fournissent le fichier de faire du xml propre ( ie bien formé : [http://www.w3.org/TR/2004/REC-xml-20040204/#sec-well-formed], autant traiter le mal à la racine ! :)