XSLT Xml输出正在从关闭斜杠中剥离空格

时间:2012-06-14 02:13:49

标签: xml xslt xmlstarlet

XSLT XML输出格式正在剥离结束标记

之前的空格

<Import Include="System.Web" />变为<Import Include="System.Web"/>

由于XSLT还删除了它所应用的文档中的许多节点,我想删除空格,除非是关闭斜杠。

xslt正在应用于许多xml ms proj文件

template.xsl;

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ms="http://schemas.microsoft.com/developer/msbuild/2003">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <!--<xsl:preserve-space elements="text"/>-->

    <xsl:template match='@*|node()'>
        <xsl:copy>
            <xsl:apply-templates select='@*|node()'/>
        </xsl:copy>
    </xsl:template>
    ... 
    ...
</xsl:stylesheet>

2 个答案:

答案 0 :(得分:3)

这是一个无法通过XSLT 控制的序列化详细信息。

实现它的任何可靠方法都是在转换结果上运行后处理器。

答案 1 :(得分:0)

我最后使用gnuwin32 sed添加了一个空格(注意^>^是逃离有角度的括号所必需的)

sed\sed.exe -i "s/\"\/^>/\" \/>/g" %outfile%