函数normalize-space删除前导和尾随空格,并将空格字符序列替换为一个空格。在XSLT 1.0中,如何用用单个空格替换空白字符序列?例如,"..x.y...\n\t..z."(为了可读性用点代替空格)应该变成".x.y.z."

最佳答案

如果没有Becker的方法,则可以使用一些discouraged字符作为标记:

translate(normalize-space(concat('',.,'')),'','')

注意:三个函数调用...

或使用任何字符,但重复一些表达:
substring(
   normalize-space(concat('.',.,'.')),
   2,
   string-length(normalize-space(concat('.',.,'.'))) - 2
)

在XSLT中,您可以轻松声明一个变量:
<xsl:variable name="vNormalize" select="normalize-space(concat('.',.,'.'))"/>
<xsl:value-of select="susbtring($vNormalize,2,string-length($vNormalize)-2)"/>

关于xslt - 如何将空白序列替换为一个空格,但不修整XSLT?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5035501/

10-13 08:52