Bonsoir,

Je cherche à savoir comment faire en sorte que ma transformation xsl attribue un nom au fichier de sortie en fonction de la valeur d'une balise du fichier xml en entré.

Autrement schematisé:
Input.xml (contient une balise <id>xxx</id>) => transformation.xsl => output.xml (output = xxx)

Merci d'avance,

Cdt
Bonjour,

Ca mérite confirmation, mais je suis à peu prés sur que c'est impssible à réaliser, XSLT réalisant une transformation sur le contenu du fichier XML, pas sur le fichier en lui même..
Je débute également dans la chose, c'est pour ça que j'émets quand même des réserves à ce que je dis...

Je risque moi aussi de tomber à coté de la plaque, mais à quel t'opères ta transformation xsl? Tu peux pas renommer ton fichier via n script sur le serveur??
Bonjour,

Voici quelques années (avant la 2.0), j'avais utilisé un élément similaire. A priori, cela devrait marcher...
Autrement, sauriez vous comment pondre un script (.bat par ex) qui irait piocher la valeur d'une balise dans le fichier xml et qui le renommerait en "valeur de la balise".xml ?
En fait, ce n'est pas la peine: tu peux directement faire ça dans la feuille de style XSLT. Pour cela, par exemple, tu définis une variable qui va lire la valeur de ton élément id, et être utilisée quand tu appelles xsl:result-document, dans l'attribut href de ce dernier, un truc dans ce genre...

<xsl:variable name="idDoc" select="id"/>
(...)
<xsl:result-document href="{concat($idDoc,'.xml')}" 
Ok je vois, merci.
Je continue dans mes questions de débutant...
Comment préparer le fichier XSL pour utiliser xsl:result-document ?

Cela suffit il de faire:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
        <xsl:template match="/Pack">
            <xsl:variable name="idDoc" select="id"/>
            <xsl:result-document href="{concat($idDoc,'.xml')}">
                (copier coller de mon fichier xsl 1.0)
            </xsl:result-document>
        </xsl:template>
</xsl:stylesheet>

Modifié par 6echo (27 Feb 2009 - 15:38)