在使用 XSLT 时,有很多关于忽略源 XML 数据中的空格的问题,但我真正想要的是在 XSLT 模板中包含空格(为了便于阅读),但不让它输出。用空格编写模板,然后将其转换为没有空格的新模板会使事情变得非常复杂,我想要一个替代方案。作为澄清,当我有 XML 片段时
<CAInfo prefix="073" serial="12345675" orig="AMS" dest="BRU" issuedate="2012-12-20" currency="EUR">
<RevisedWeight code="K" amt="140.5"/>
<OriginalWeight code="K" amt="2"/>
</CAInfo>
我想输出
PRE/114-12345675AMSBRU/K140.5/K2/2012-12-20/EUR
我现在正在使用
<xsl:template match="CAInfo">
PRE/<xsl:value-of select="@prefix"/>-<xsl:value-of select="@serial"/><xsl:value-of select="@orig"/><xsl:value-of select="@dest"/>/<xsl:value-of select="RevisedWeight/@code"/><xsl:value-of select="RevisedWeight/@amt"/>/<xsl:value-of select="OriginalWeight/@code"/><xsl:value-of select="OriginalWeight/@amt"/>/<xsl:value-of select="@issuedate"/>/<xsl:value-of select="@currency"/>
</xsl:template>
我更愿意使用的是
<xsl:template match="CAInfo">
PRE/<xsl:value-of select="@prefix"/>-<xsl:value-of select="@serial"/>
<xsl:value-of select="@orig"/><xsl:value-of select="@dest"/>
/<xsl:value-of select="RevisedWeight/@code"/><xsl:value-of select="RevisedWeight/@amt"/>
/<xsl:value-of select="OriginalWeight/@code"/><xsl:value-of select="OriginalWeight/@amt"/>
/<xsl:value-of select="@issuedate"/>
/<xsl:value-of select="@currency"/>
</xsl:template>
但这会给我额外的输出换行符。我该如何避免这些?