XSLT:如何防止XSLT代码在输出xml中生成冗余空格

时间:2009-12-14 08:38:06

标签: xml xslt

使用我的XSL代码,每当我删除一个元素时..它会在输出xml中引入一个空白行空间..这会妨碍XML的树结构外观 ..你能吗?请建议我..如何摆脱它..?

以下是样本代码示例。

示例XML:

<tag1>
  <tag1_1>text</tag1_1>
  <tag1_2 delete="Y">text</tag1_2>
  <tag1_3>
    <tag1_3_1></tag1_3_1>
    <tag1_3_2 delete="Y">
      <tag_child>text</tag_child>
    </tag1_3_2>
  </tag1_3>
</tag1>


示例XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>
  <xsl:template match="//*[@delete='Y']"/>
</xsl:stylesheet>


生成的XML:

<tag1>
  <tag1_1>text</tag1_1>

  <tag1_3>
    <tag1_3_1 />

  </tag1_3>
</tag1>

1 个答案:

答案 0 :(得分:6)

您可以使用xsl:strip-space

<xsl:strip-space elements="*"/>