Как добавить разрыв строки в текст, который я создаю с помощью XSLT? - PullRequest
15 голосов
/ 26 января 2011

Я пытаюсь создать текстовый вывод из файла 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>)

Я хочу сделать разрыв строки после "(" в первой строке, но не могу найти способ сделать это.

Ответы [ 3 ]

34 голосов
/ 26 января 2011

Что касается разрывов строк, я сам предпочитаю более явный / читабельный способ.

<xsl:text>&#xa;</xsl:text>
12 голосов
/ 26 января 2011

Если поставить

<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>] (&#xa;</xsl:text>

и да, я согласен с явным символом разрыва строки. Как видите, XSLT не очень читабелен, но дает правильный ответ

0 голосов
/ 21 октября 2015

использовать теги это просто

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...