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:
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.
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>
un xml d'exemple:
Merci
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>
Thierry
Partager