使用连续空白 xsl:text 时,输出文件中会抑制空白文本

blank text get suppressed from output file when using consecutive blank xsl:text

我一直试图解决一个问题,但没有成功,通过试验,我最终使用了这个小型 XSLT 来证明我的观点。部分问题在于这在我的 PC 上运行良好,但是当在服务器上 运行 时输出不同。我能够将问题确定为 XSLT 正在写入两个连续的 xsl:text ,它们都是空白。

问题是当有两个连续的空白时,其中一个被抑制。出于好奇,我实际上是在使用 LOC MODS 到 MARC XSLT 编写 MARCXML 文件,问题在于 008 字段的 CP 7-10 和 CP 11-14。当两者都是空白时,只有4个空白而不是8个导致加载失败。

这是 XSLT:

    <xsl:template match="/">
        <xsl:text>beginning of a string</xsl:text>
        <xsl:text>    </xsl:text>
        <xsl:text>    </xsl:text>
        <xsl:text>end of a string</xsl:text>
    </xsl:template>

结果如下:

beginning of a string    end of a string

请注意只有 4 个空格而不是 8 个。如果我在两个空白 XSLT 文本中的任何一个中插入文本,一切都很好。同样,这在我的 PC 上输出正常,但在服务器上输出不正常。

有谁知道是否需要设置 Saxon 的选项或配置才能正确输出?

我使用 Liquid Studio 在我的计算机上使用与服务器上相同的输入文件在本地测试我的 XSLT。在服务器上,转换通过命令行执行,我们使用的是 Saxon HE9.9。我使用 Liquid Studio 下载并在我的 PC 上查看结果 XML。

命令行如下:D:\Program Files\Saxonica\SaxonHE9.9N\bin\Transform" -s:"\fileshare.lacaws02.local\goanywhere\data\Test008\mods2marc-In 2.xml" -xsl:\fileshare.lacaws02.local\goanywhere\Lib\MODS\MODS3-4_TO_MARC21slim_XSLT16.xsl -o:\fileshare.lacaws02.local\goanywhere\userdata\workspace00000000114\Output.xml

我终于让我们的管理员在我们的服务器上安装了 Saxon HE 9.8,并且 运行 相同的文件和相同的 XSLT,一切正常。因此,我怀疑这是 Saxon HE 9.9 的错误。感谢大家的帮助。