Как добавить разрыв строки в текст, который я создаю с помощью XSLT?
Я пытаюсь создать текстовый вывод из xml файла с помощью xslt.
На самом деле xslt создает код SQL. Вот часть, которая выводит инструкции 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>)
Я хочу иметь разрыв строки после "(" в первой строке, но не могу понять, как это сделать. Может ли кто-нибудь помочь?
Ответы
Ответ 1
Если вы положили
<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
Что касается разрывов строк, я сам предпочитаю более явный/читаемый способ.
<xsl:text>
</xsl:text>
Ответ 3
использовать теги это легко
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