我想修剪XML中p标签内的前导空格,所以这个:
<p> Hey, <em>italics</em> and <em>italics</em>!</p>
Run Code Online (Sandbox Code Playgroud)
变成这样:
<p>Hey, <em>italics</em> and <em>italics</em>!</p>
Run Code Online (Sandbox Code Playgroud)
(修剪尾随空格不会受到伤害,但并非强制性.)
现在,我知道normalize-whitespace()应该这样做,但如果我尝试将它应用于文本节点..
<xsl:template match="text()">
<xsl:text>[</xsl:text>
<xsl:value-of select="normalize-space(.)"/>
<xsl:text>]</xsl:text>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
...它分别应用于每个文本节点(在括号中)并将它们吸干:
[Hey,]<em>[italics]</em>[and]<em>[italics]</em>[!]
Run Code Online (Sandbox Code Playgroud)
我的XSLT看起来基本上是这样的:
<xsl:template match="p">
<xsl:apply-templates/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
那么有什么方法可以让apply-templates完成,然后在输出上运行normalize-space,这应该做对了吗?