0

我在一个 11 MB 的 xml 文件上运行身份转换,它会生成一个 5.5 MB 的文件。我正在使用撒克逊 9.4.0.6。如果我向输出元素添加编码属性,结果文件大小将保持在 11 MB。

带编码:

<xsl:output method="xml" cdata-section-elements="Value" indent="no" encoding="utf-16"/>

无编码:

<xsl:output method="xml" cdata-section-elements="Value" indent="no"/>

最大的不同来自哪里?谢谢

XSLT:

<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" cdata-section-elements="Value" indent="no"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
    <xsl:apply-templates select="*"/>
</xsl:template>

<xsl:template match="node()|@*">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*" mode="#current"/>
    </xsl:copy>
</xsl:template>

4

1 回答 1

0

不同之处在于ASCII 字符在 UTF-8 中占用 1 个字节,但在 UTF-16 中占用 2 个字节

于 2012-11-28T16:45:08.503 回答