[XSLT]Contenu mixte et apply-template
Bonjour,
Voila je doit dans une balise à contenu mixte chercher les différentes balises b avec l'attribut id="I" pour le rebaliser mais tout les autre id doivent se recopier sans la balise.
Problème je dois vérifier que le dernier caractère ne soit pas un . ou ; si tel est le cas je dois l'effacer comment faire?
Ce que j'ai fais:
xslt:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<xsl:template match="Texte/Text">
<xsl:variable name="EndText"><xsl:value-of select="string-length(.)"/></xsl:variable>
<w:t xml:space="preserve"><xsl:choose>
<xsl:when test="substring(., $EndText, 1) = '.' or substring(., $EndText, 1) =';'"><xsl:value-of select="substring(., 1,number($EndText)-1)"/></xsl:when>
<xsl:otherwise><xsl:apply-templates select="node()"/></xsl:otherwise>
</xsl:choose></w:t>
</xsl:template>
<xsl:template match="b[@id='I']">
<ID13>
<xsl:value-of select="."/>
</ID13>
</xsl:template> |
Que puis-je bien mettre dans le xsl:when pour qu'il me renvoit la balise ID13? et pas seulement son contenu comme dans le xslt au-dessus.
un xml d'exemple:
Code:
1 2 3 4
| <?xml version="1.0" encoding="UTF-8"?>
<Texte>
<Text>dkjfkjdskflj <b id="I">CH-214.0.325.325-1</b> shfdl kfjds dfhksdklf hsdkljfjs <b id="T">youpi</b> fdhshfsdfs.</Text>
</Texte> |
Merci
Thierry