XSLT / XALAN > pbl sorties multiples - XML/XSL - Programmation
Marsh Posté le 13-11-2005 à 21:43:48
Bonjour tout le monde! J'ai un petit pbl pour generer plusieurs fichiers xml en sortie en fait mon fichier XSLT n'est pas bon ... <row numEtud="1" civilitEtud="Monsieur" nomEtud="ASSO" Entreprise="SAGESSE" adrEntre="12, Place Roguet" cpEntre="31300" /> <row numEtud="2" civilitEtud="Mademoiselle" nomEtud="AUGE" Entreprise="GIE GREENCAM" adrEntre="18 Rue DAVOUT" cpEntre="21000" /> J'aimerai obtenir en sortie, 1 fichier etudiants.xml exemple : <etudiants> <row numEtud="1" civilitEtud="Monsieur" nomEtud="ASSO"/> <row numEtud="2" civilitEtud="Mademoiselle" nomEtud="AUGE"/> </etudiants> et 1 fichier entreprises.xml exemple : <entreprises> <row Entreprise="GIE GREENCAM" adrEntre="18 Rue DAVOUT" cpEntre="21000"/> <row Entreprise="SAGESSE" adrEntre="12, Place Roguet" cpEntre="31300"/> </entreprises> et voila le fichier XSLT incriminé ! <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="org.apache.xalan.lib.Redirect" extension-element-prefixes="redirect"> <xsl:template match="/"> <redirect:write file="entreprises.xml"> <entreprises> <xsl:for-each select="row"> <xsl:call-template name="entre" /> </xsl:for-each> </entreprises> </redirect:write> <redirect:write file="etudiants.xml"> <etudiants> <xsl:for-each select="row"> <xsl:call-template name="etud" /> </xsl:for-each> </etudiants> </redirect:write> </xsl:template> <!-- Declaration des attributs concernant l'etudiant --> <xsl:attribute-set name="attrEtudiants"> <xsl:attribute name="numEtud"><xsl:value-of select="@numEtud"/></xsl:attribute> <xsl:attribute name="civilitEtud"><xsl:value-of select="@civilitEtud"/></xsl:attribute> <xsl:attribute name="nomEtud"><xsl:value-of select="@nomEtud"/></xsl:attribute> </xsl:attribute-set> <!-- Declaration des attributs concernant l'entreprises --> <xsl:attribute-set name="attrEntreprise"> <xsl:attribute name="entreprise"><xsl:value-of select="@Entreprise"/></xsl:attribute> <xsl:attribute name="adrEntre"><xsl:value-of select="@adrEntre"/></xsl:attribute> <xsl:attribute name="cpEntre"><xsl:value-of select="@cpEntre"/></xsl:attribute> </xsl:attribute-set> <xsl:template name="entre"> <xsl:element name="row" use-attribute-sets="attrEntreprise"/> </xsl:template> <xsl:template name="etud"> <xsl:element name="row" use-attribute-sets="attrEtudiants"/> </xsl:template>
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 13-11-2005 à 21:43:48
Bonjour tout le monde!
J'ai un petit pbl pour generer plusieurs fichiers xml en sortie en fait mon fichier XSLT n'est pas bon ...
<row numEtud="1" civilitEtud="Monsieur" nomEtud="ASSO" Entreprise="SAGESSE" adrEntre="12, Place Roguet" cpEntre="31300" />
<row numEtud="2" civilitEtud="Mademoiselle" nomEtud="AUGE" Entreprise="GIE GREENCAM" adrEntre="18 Rue DAVOUT" cpEntre="21000" />
J'aimerai obtenir en sortie, 1 fichier etudiants.xml
exemple :
<etudiants>
<row numEtud="1" civilitEtud="Monsieur" nomEtud="ASSO"/>
<row numEtud="2" civilitEtud="Mademoiselle" nomEtud="AUGE"/>
</etudiants>
et 1 fichier entreprises.xml
exemple :
<entreprises>
<row Entreprise="GIE GREENCAM" adrEntre="18 Rue DAVOUT" cpEntre="21000"/>
<row Entreprise="SAGESSE" adrEntre="12, Place Roguet" cpEntre="31300"/>
</entreprises>
et voila le fichier XSLT incriminé !
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="org.apache.xalan.lib.Redirect"
extension-element-prefixes="redirect">
<xsl:template match="/">
<redirect:write file="entreprises.xml">
<entreprises>
<xsl:for-each select="row">
<xsl:call-template name="entre" />
</xsl:for-each>
</entreprises>
</redirect:write>
<redirect:write file="etudiants.xml">
<etudiants>
<xsl:for-each select="row">
<xsl:call-template name="etud" />
</xsl:for-each>
</etudiants>
</redirect:write>
</xsl:template>
<!-- Declaration des attributs concernant l'etudiant -->
<xsl:attribute-set name="attrEtudiants">
<xsl:attribute name="numEtud"><xsl:value-of select="@numEtud"/></xsl:attribute>
<xsl:attribute name="civilitEtud"><xsl:value-of select="@civilitEtud"/></xsl:attribute>
<xsl:attribute name="nomEtud"><xsl:value-of select="@nomEtud"/></xsl:attribute>
</xsl:attribute-set>
<!-- Declaration des attributs concernant l'entreprises -->
<xsl:attribute-set name="attrEntreprise">
<xsl:attribute name="entreprise"><xsl:value-of select="@Entreprise"/></xsl:attribute>
<xsl:attribute name="adrEntre"><xsl:value-of select="@adrEntre"/></xsl:attribute>
<xsl:attribute name="cpEntre"><xsl:value-of select="@cpEntre"/></xsl:attribute>
</xsl:attribute-set>
<xsl:template name="entre">
<xsl:element name="row" use-attribute-sets="attrEntreprise"/>
</xsl:template>
<xsl:template name="etud">
<xsl:element name="row" use-attribute-sets="attrEtudiants"/>
</xsl:template>