[0] C'est difficile de voir exactement ce que vous voulez sortir... j'essaie de vous répondre.
[1]
Est ce que ce code est correct, malgre on declare 2 fois la variable NumEtudiant ?
Pourquoi pas tester vous-même de découvrir tout de suite ? En tout cas, la réponse est non, ce n'est pas correct. Le nom de variable est quelque peu comme une identité identifiant : il doit être unique dedans sa portée pleinement le template. Pourtant, une variable ou un paramètre global peut être remplacé pas une variable ou paramètre local dedans un template de même nom.
[2]
<xsl:copy-of select="@*[adresse()!='ville' and adresse()!='numMaison' "/>
Ce n'est pas correct et l'intention n'est pas tout à fait claire et je spécule :
<xsl:copy-of select="@*[name()!='adresse' or ((name()='adresse' and . != 'ville') and (name()='adresse' and . != 'numMaison'))]" />
[3] Le syntaxe de xsl:attribute est incorrect. Il n'y a pas de place pour adresse. C'est plutôt name ?
[4] Si vous voulez un traitement spécial pour l'attribut NumEtudiant pour garder contre le cas où il ne présent même pas dans le noeud en contexte et pour l'attribut adresse contre le cas où sa valeur soit ville ou numMaison, vous pouvez faire ça - mais je spécule de beaucoup.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <xsl:template match="TempPrincipal">
<Etudiant>
<xsl:copy-of select="@*[(name()!='NumEtudiant') and name()!='adresse')]" />
<xsl:choose>
<xsl:when test="not(@NumEtudiant) ">
<xsl:attribute name="NumEtudiant"><xsl:value-of select="'Le num n existe pas'"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="NumEtudiant"><xsl:value-of select="@NumEtudiant" /></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="@adresse='ville'">
<xsl:attribute name="adresse"><xsl:value-of select="'ville1'"/></xsl:attribute>
</xsl:when>
<xsl:when test="@adresse='numMaison'">
<xsl:attribute name="adresse"><xsl:value-of select="'123'"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="adresse"><xsl:value-of select="@adresse" /></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</Etudiant>
</xsl:template> |
Partager