Existe-t-il un moyen simple de supprimer le remplissage, c'est-à-dire l'espace blanc de début et/ou de fin. La fonction de rembourrage EXSLT semble créer uniquement des bourrelets ou des garnitures à une certaine longueur.Rembourrage de bande XSL
Répondre
Normaliser-space() ferait-il le travail pour vous? Cela réduira également les espaces à l'intérieur de la chaîne, par ex.
" this string "
deviendrait:
"this string"
Si vous avez vraiment besoin d'une fonction "trim", vous pouvez probablement steal one from someone else who's already implemented it avec normalizse espace() ...
Ou on pourrait utiliser la fonction de remplacement (http://www.w3.org/TR/xpath-functions/#func-replace). Il devrait fonctionner plus ou moins (c'est-à-dire non testé) comme ceci: 'replace (chaîne, '^ \ s * (. *?) \ S * $', '')'. – musiKk
Essayez normalize-space
<xsl:value-of select='normalize-space(string)'/>
On ne sait pas ce que l'on veut - qu'est-ce que "strip padding"?
Si vous vouliez dire la fonction trim(), puis
Le FXSL library fournit une fonction de modèle pratique trim
.
Cette transformation:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="trim.xsl"/>
<xsl:output method="text"/>
<xsl:template match="/">
'<xsl:call-template name="trim">
<xsl:with-param name="pStr" select="string(/*)"/>
</xsl:call-template>'
</xsl:template>
</xsl:stylesheet>
lorsqu'il est appliqué sur ce document XML:
<someText>
This is some text
</someText>
produit le résultat souhaité, correct:
'This is some text'
Qu'est-ce que « strip- rembourrage"? S'il vous plaît, éditez votre question et donnez un exemple concret de ce que vous voulez! –
A propos de la gestion de l'espace blanc, il existe plusieurs scénarios ... Voir http://stackoverflow.com/questions/184431/converting-xml-to-plain-text-using-xslt-how-should-i-ignore-handle -whitespace/185048 # 185048 –