剥夺Saxon的额外换行符

时间:2014-04-01 09:02:18

标签: xslt-2.0 saxon

我使用Altova XMLSpy和Saxon。 Saxon在结果文件中添加了很多选项卡和换行符。所以我添加了模板(在stackoverflow上找到):

<xsl:template match="*/text()[normalize-space()]">
   <xsl:value-of select="normalize-space()"/>
 </xsl:template>

 <xsl:template match="*/text()[not(normalize-space())]" />

到样式表,整齐地删除了所有额外的空白区域。但是,它还删除了&lt; i&gt; ....&lt; / i&gt;之前和之后的空格。和&lt; q&gt; ....&lt; / q&gt;在&lt; p&gt;内:

<p>this is <i>italic</i> text</p>

所以Altova和Saxon都给了我:

<p>this is<i>italic</i>text</p>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用xsl:output元素控制输出的缩进。使用xsl:strip-space和xsl:preserve-space来控制输入的空格处理。

使用您展示的两个模板作为最后的手段。在这里,第一个模板是导致与i元素相邻的空白丢失的模板,因为处理器正在执行您告诉他们要做的事情,而不是您要告诉他们要做的事情。

相关问题