我使用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>
我该如何解决这个问题?
答案 0 :(得分:0)
使用xsl:output元素控制输出的缩进。使用xsl:strip-space和xsl:preserve-space来控制输入的空格处理。
使用您展示的两个模板作为最后的手段。在这里,第一个模板是导致与i
元素相邻的空白丢失的模板,因为处理器正在执行您告诉他们要做的事情,而不是您要告诉他们要做的事情。