Bonjour à tous,
Je suis débutant en XSLT et je n'arrive pas à faire ce que je veux avec un xslt.
Mon fichier XML :
<Document>
<DOC.MAIN NO="0001" >
<PAGE.FIRST>12</PAGE.FIRST>
<PAGE.LAST>12</PAGE.LAST>
<PAGE.TOTAL>1</PAGE.TOTAL>
<PAGE.SEQ>1</PAGE.SEQ>
</DOC.MAIN>
<DOC.SUB NO="0001.0001" >
<PAGE.FIRST>13</PAGE.FIRST>
<PAGE.LAST>14</PAGE.LAST>
<PAGE.TOTAL>2</PAGE.TOTAL>
</DOC.SUB>
<DOC.SUB NO="0001.0001.0001" >
<PAGE.FIRST>13</PAGE.FIRST>
<PAGE.LAST>14</PAGE.LAST>
<PAGE.TOTAL>2</PAGE.TOTAL>
</DOC.SUB>
<DOC.SUB NO="0001.0001.0001.0001" >
<PAGE.FIRST>13</PAGE.FIRST>
<PAGE.LAST>14</PAGE.LAST>
<PAGE.TOTAL>2</PAGE.TOTAL>
</DOC.SUB>
</Document>
Je veux un xslt pour avoir cet imbrication selon la hierarchy du NO pour avoir ce résultat:
<Document>
<DOC.MAIN NO="0001" >
<PAGE.FIRST>12</PAGE.FIRST>
<PAGE.LAST>12</PAGE.LAST>
<PAGE.TOTAL>1</PAGE.TOTAL>
<PAGE.SEQ>1</PAGE.SEQ>
</DOC.MAIN>
<DOC.SUB NO="0001.0001" >
<PAGE.FIRST>13</PAGE.FIRST>
<PAGE.LAST>14</PAGE.LAST>
<PAGE.TOTAL>2</PAGE.TOTAL>
<DOC.SUB NO="0001.0001.0001" >
<PAGE.FIRST>13</PAGE.FIRST>
<PAGE.LAST>14</PAGE.LAST>
<PAGE.TOTAL>2</PAGE.TOTAL>
<DOC.SUB NO="0001.0001.0001.0001" >
<PAGE.FIRST>13</PAGE.FIRST>
<PAGE.LAST>14</PAGE.LAST>
<PAGE.TOTAL>2</PAGE.TOTAL>
</DOC.SUB>
</DOC.SUB>
</DOC.SUB>
</Document>
J'ai essayé avec un for-each select, mais ça ne marche pas
<xsl:template match="/">
<DOCUMENT>
<xsl:for-each select="//Document">
<xsl:element name="DOC.PRIM">
<xsl:variable name="NO">
<xsl:value-of select="@NO"/>
</xsl:variable>
<xsl:variable name="x" select="//Document[@NO=$NO]"/>
<xsl:element name="NO">
<xsl:value-of select="$NO"/>
</xsl:element>
<xsl:element name="DOC.SUB">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</DOCUMENT>
</xsl:template>
JE VOUS REMERCIE D AVANCE POUR VOTRE AIDE
Partager