2009-12-14 25 views
3

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

下面是样本的样本代码..

示例XML:
XSLT:如何防止XSLT代码在输出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> 
+0

问得好+1 – 2009-12-14 08:44:58

回答

6

你可以使用xsl:strip-space

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

的感谢名单做!!!!!!! – 2009-12-14 09:07:45

+0

非常有用的提示!这进入我的个人武库。 – 2009-12-14 09:23:02