I m利用VS2008撰写和测试轴变。 产出中包含不想要的白色空间,这一简化例子说明了这一点:
投入:
<?xml version="1.0" encoding="utf-8" ?>
<envelope>
<header>
<head id="1" text="Heading1"/>
</header>
<body>
<message>
<items>
<item id="1" Color="Red"/>
<item id="2" Color="Green"/>
<item id="3" Color="Blue"/>
<item id="4" Color="Purple"/>
</items>
</message>
</body>
</envelope>
转变:
<?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="xml" indent="yes"/>
<xsl:template match="message">
<xsl:element name="Colors">
<xsl:apply-templates select="items/item" />
</xsl:element>
</xsl:template>
<xsl:template match="items/item">
<xsl:element name="Color">
<xsl:value-of select="@Color"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
产出:
<?xml version="1.0" encoding="utf-8"?>
<Colors><Color>Red</Color><Color>Green</Color><Color>Blue</Color><Color>Purple</Color></Colors>
虽然在产出中难以显示,但似乎正在发生的是投入档案的白色空间,甚至在我的模板没有匹配时,也被送往产出档案。 这是我喜欢的,并期望产出能够看一看:
<?xml version="1.0" encoding="utf-8"?>
<Colors>
<Color>Red</Color>
<Color>Green</Color>
<Color>Blue</Color>
<Color>Purple</Color>
</Colors>
这是可能的吗? 现在我可能必须做的是将结果装入Xml文件,然后再次将其印成格式。