【发布时间】:2015-05-12 18:51:37
【问题描述】:
我有一个简单的xml和xsl,如下:
XML
<p><span>a</span> <span>b</span></p>
XSL
<xsl:variable name="output">
<xsl:apply-templates select="//p"/>
</xsl:variable>
<xsl:value-of select="$output" />
<xsl:template match="p">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="span">
<xsl:if test="string-length(normalize-space(.)) > 0">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
请注意第一个 span 标签的结束和第二个 span 标签的打开之间的空格。
目前这个转换的输出给出:
输出
ab
在 XSLT 中有没有一种方法可以在转换后保留 span 标签之间的空间。
所需的输出
a b
尝试在 p 和 span 模板匹配标记中指定 xml:space="preserve"。它只是放置了很多空间。
另外,我的方案没有让我选择添加可能已翻译为空白空格的占位符标签。
【问题讨论】: