我正在创建一些XSL将我的XML转换为文本(最终将变成CSV)。我使用VS2008。当我使用编辑器创建XSL时,转换后的输出会按照我的XSL进行缩进。然而,如果我编辑XSL并删除格式化的空格,它就会正确输出 - 但像这样做是一场噩梦。是否有一些XSL预处理命令或标记可以防止这种情况发生?我想忽略XSL中的任何空格,并仅使用或输出文本。我的XSL如下 - 这会缩进输出。
这个的输出如下:
然而,以下输出是正确的:
我也想控制新行的位置。在我的XSL中,我没有告诉它包含一个新行。
请帮忙!
谢谢,
Andez
<?xml version="1.0" encoding="utf-8"?>
<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="text" indent="no"/>
<!-- @* is all class attributes -->
<xsl:template match="/">
<xsl:text>CSV Output</xsl:text>
<!-- Start of output -->
<xsl:for-each select="//rows/row">
<![CDATA[row id=]]><xsl:value-of select="(@id)"/>
</xsl:for-each>
<!-- OK, that is the end of the file -->
<![CDATA[<EOF>]]>
</xsl:template>
</xsl:stylesheet>
这个的输出如下:
CSV Output
row id=0
row id=1
<EOF>
然而,以下输出是正确的:
<?xml version="1.0" encoding="utf-8"?>
<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="text" indent="no"/>
<!-- @* is all class attributes -->
<xsl:template match="/">
<xsl:text>CSV Output</xsl:text>
<!-- Start of output -->
<xsl:for-each select="//rows/row">
<![CDATA[row id=]]><xsl:value-of select="(@id)"/>
</xsl:for-each>
<!-- OK, that is the end of the file -->
<![CDATA[<EOF>]]>
</xsl:template>
</xsl:stylesheet>
这将正确输出如下:
CSV Output
row id=0
row id=1
<EOF>
我也想控制新行的位置。在我的XSL中,我没有告诉它包含一个新行。
请帮忙!
谢谢,
Andez