如何在使用XSLT创建的文本中添加换行符?

bjo*_*sig 15 xml xslt

我正在尝试使用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>)
Run Code Online (Sandbox Code Playgroud)

我希望在第一行的"("之后有一个换行符但是无法找到如何这样做.有人可以帮忙吗?

Fla*_*ack 34

至于换行符,我自己更喜欢更明确/可读的方式.

<xsl:text>&#xa;</xsl:text>
Run Code Online (Sandbox Code Playgroud)


pet*_*ust 12

如果你放

<xsl:text>
</xsl:text>
Run Code Online (Sandbox Code Playgroud)

在你的XSLT中,它会给出一个换行符.目前尚不清楚你想把它放在哪里.我猜你想要:

<xsl:text>CREATE TABLE dbo.[</xsl:text><xsl:value-of select="@PhysicalName"/><xsl:text>] (
</xsl:text>
Run Code Online (Sandbox Code Playgroud)

一般来说,你应该始终将文本输出包装在...中,它在XSL中看起来有点可怕,但它保留了间距.请注意,您可以在不影响结果的情况下中断XSLT中的行 - 例如

<xsl:text>CREATE TABLE dbo.[</xsl:text>
<xsl:value-of select="@PhysicalName"/>
<xsl:text>] (&#xa;</xsl:text>
Run Code Online (Sandbox Code Playgroud)

是的,我同意明确的换行符.正如您所看到的,XSLT不是很易读,但它得到了正确的答案