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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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