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

Inf*_*nd' 3 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>
Run Code Online (Sandbox Code Playgroud)


示例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>
Run Code Online (Sandbox Code Playgroud)


产生的XML:

<tag1>
  <tag1_1>text</tag1_1>

  <tag1_3>
    <tag1_3_1 />

  </tag1_3>
</tag1>
Run Code Online (Sandbox Code Playgroud)

San*_*pas 6

你可以使用xsl:strip-space:

<xsl:strip-space elements="*"/> 
Run Code Online (Sandbox Code Playgroud)