我正在尝试使用xslt从xml文件创建文本输出。 它实际上是一个创建SQL代码的xslt。这是输出CREATE TABLE语句的部分:
CREATE TABLE dbo.[<xsl:value-of select="@PhysicalName"/>] (
<xsl:for-each select="EntityAttributes/EntityAttribute">
<xsl:apply-templates select="Attributes/Attribute[@AttributeID = current()/@EntityAttributeID]"/> ...
</xsl:for-each>)
我希望在第一行“(”之后)换行,但无法找到如何操作。有人可以帮忙吗?
答案 0 :(得分:33)
至于换行符,我自己更喜欢更明确/可读的方式。
<xsl:text>
</xsl:text>
答案 1 :(得分:12)
如果你把
<xsl:text>
</xsl:text>
在你的XSLT中它会给出一个换行符。目前尚不清楚你想把它放在哪里。我猜你想要:
<xsl:text>CREATE TABLE dbo.[</xsl:text><xsl:value-of select="@PhysicalName"/><xsl:text>] (
</xsl:text>
一般情况下,你应该始终将文本输出包装在...中,它在XSL中看起来有点可怕,但它保留了间距。请注意,您可以在不影响结果的情况下中断XSLT中的行 - 例如
<xsl:text>CREATE TABLE dbo.[</xsl:text>
<xsl:value-of select="@PhysicalName"/>
<xsl:text>] (
</xsl:text>
是的,我同意明确的换行符。正如您所看到的,XSLT不是很易读,但它得到了正确的答案
答案 2 :(得分:-2)
使用标签很容易
Example:
<div>TOTAL STAR POINTS EARNED </div>
<div>TOTAL STAR POINTS REDEEMED </div>
<div>BALANCE STAR POINTS AVAILABLE </div>
输出:
TOTAL STAR POINTS EARNED
TOTAL STAR POINTS REDEEMED
BALANCE STAR POINTS AVAILABLE