Utilisation de condition dans une boucle for-each
Bonjour,
Voila je voulais savoir s'il était possible d'utiliser une condition if dans une bouclke for-each en XML !!?
plus précisemment, j'ai mon fichier XML ;
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<OtherInvoiceReferences>
<core:ReferenceCoded>
<core:ReferenceTypeCoded>[4]</core:ReferenceTypeCoded>
<core:PrimaryReference>
<core:RefNum>[5]</core:RefNum>
</core:PrimaryReference>
</core:ReferenceCoded>
<core:ReferenceCoded>
<core:ReferenceTypeCoded>[6]</core:ReferenceTypeCoded>
<core:PrimaryReference>
<core:RefNum>[7]</core:RefNum>
<core:RefDate>[7a]</core:RefDate>
</core:PrimaryReference>
</core:ReferenceCoded>
<core:ReferenceCoded>
<core:ReferenceTypeCoded>[8]</core:ReferenceTypeCoded>
<core:PrimaryReference>
<core:RefNum>[9]</core:RefNum>
</core:PrimaryReference>
</core:ReferenceCoded>
<core:ReferenceCoded>
<core:ReferenceTypeCoded>[9a]</core:ReferenceTypeCoded>
<core:ReferenceTypeCodedOther>[9b]</core:ReferenceTypeCodedOther>
<core:PrimaryReference>
<core:RefNum>[9c]</core:RefNum>
</core:PrimaryReference>
</core:ReferenceCoded>
<core:ReferenceCoded>
<core:ReferenceTypeCoded>[9d]</core:ReferenceTypeCoded>
<core:ReferenceTypeCodedOther>[9e]</core:ReferenceTypeCodedOther>
<core:PrimaryReference>
<core:RefNum>[9f]</core:RefNum>
</core:PrimaryReference>
</core:ReferenceCoded>
</OtherInvoiceReferences> |
je veux recupérer les données entre crochet :
Citation:
[4];[5];[6];[7];[7a];[8];[9];[9a];[9b];[9c];[9d];[9e];[9f]
J'ai choisi d'utiliser une boucle for-each pour parcourir les données :
Code:
1 2 3 4 5 6 7
|
<xsl:for-each select="o:Invoice/o:InvoiceHeader/o:InvoiceReferences/o:OtherInvoiceReferences/core:ReferenceCoded ">
<xsl:value-of select="core:ReferenceTypeCoded "></xsl:value-of><xsl:text>;</xsl:text>
<xsl:value-of select="core:PrimaryReference/core:RefNum "></xsl:value-of><xsl:text>;</xsl:text>
<xsl:value-of select="core:PrimaryReference/core:RefDate "></xsl:value-of><xsl:text>;</xsl:text>
<xsl:value-of select="core:ReferenceTypeCodedOther "></xsl:value-of><xsl:text>;</xsl:text>
</xsl:for-each> |
le souci c'est que quand la données n'existe pas il me met des ";" dont je n'est pas besoin. Dans ce cas, est-ce possible d'utiliser une condition if ?
Si c'est possible comment faire le test d’existence de données ?
Est ce que je fais fausse route ? existe t il une méthode plus efficace ?
Merci a tous !