给定元素:
<comments> comments
go here
</comments>
如何删除多个前导空格字符。我无法使用规范化空间,因为我需要保留换行符等。 XSLT 2.0 ok。
答案 0 :(得分:4)
使用replace()
功能:
replace($input,'^ +','')
仅处理前导空格字符直到第一个非空格。如果要删除所有前导空格字符(即空格,nl,cr,制表符)直到第一个非空格,请使用:
replace($input,'^\s+','')
答案 1 :(得分:4)
在XPath 1.0中(也指XSLT 1.0):
substring($input,
string-length(
substring-before($input,
substring(translate($input, ' ', ''),
1,
1)
)
) +1
)
包含在XSLT转换中:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="input"
select="string(/*/text())"/>
<xsl:template match="/">
'<xsl:value-of select=
"substring($input,
string-length(
substring-before($input,
substring(translate($input, ' ', ''),
1,
1)
)
) +1
)
"/>'
</xsl:template>
</xsl:stylesheet>
将此转换应用于以下XML文档:
<t> XXX YYY Z</t>
产生了正确的,想要的结果:
'XXX YYY Z'