我正在生成MySQL的创建表语句。我的源XML看起来像:XSLT - 删除最后一个逗号
<table name="TabName">
<column> ... </column> <!-- multiple columns -->
<primary-key> ... </primary-key>
<foreign-key> ... </foreign-key> <!-- multiple FKs -->
<key>... </key> <!-- multiple indexes -->
</table>
Transformatin就像
<xsl:for-each select="column"> blabla ,</xsl:for-each>
<xsl:if test="primary-key"> blabla, </xsl:if>
<xsl:for-each select="key"> blabla, </xsl:for-each>
<xsl:for-each select="foreign-key"> blabla, </xsl:for-each>
完成请注意,我追加逗号在每个语句的结束。 SQL输出如下所示:
CREATE TABLE`categories` (
`CategoryID` tinyint(5) unsigned NOT NULL,
`CategoryName` varchar(15) NOT NULL,
`Description` mediumtext NOT NULL,
`Picture` varchar(50) NOT NULL,
PRIMARY KEY (`CategoryID`),) --here is bad column
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
如何在执行XSLT转换时删除逗号?谢谢
这实际上工作:)但我发现更好的解决方案,在每一个我确定存在的新行之前追加逗号,而不是后。这个技巧甚至更好。 – Xorty
@Xorty你可以,但你必须确信这个存在。否则,你仍然需要一个条件。 –