2011-01-25 16 views
15

Estoy intentando crear un resultado de texto a partir de un archivo xml usando xslt. En realidad, es un xslt que crea código SQL. Aquí es una parte que da salida a CREATE TABLE:¿Cómo puedo agregar un salto de línea al texto que estoy creando con XSLT?

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>) 

Quiero tener un salto de línea después de la "(" en la primera línea, pero no puede llegar a averiguar cómo hacerlo ¿Alguien puede ayudar

.? ..

Respuesta

11

Si pones

<xsl:text> 
</xsl:text> 

en su XSLT que dará un salto de línea no está claro dónde desea poner esto estoy adivinando que desee:

<xsl:text>CREATE TABLE dbo.[</xsl:text><xsl:value-of select="@PhysicalName"/><xsl:text>] (
</xsl:text> 

En general, siempre debe ajustar la salida de texto en ... se ve un poco horrible en el XSL pero conserva el espacio. Tenga en cuenta que puede dividir las líneas en XSLT sin afectar el resultado, por ej.

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

y sí, estoy de acuerdo acerca del carácter de salto de línea explícita. Como puede ver, el XSLT no es muy legible pero tiene la respuesta correcta

+0

que escribiste * "Como se puede ver el XSLT no es muy legible" *. Eso es muy subjetivo. Considero que con 'xsl: text' la ** hoja de estilos se vuelve muy legible **. Tal vez quieras decir que ** la producción se vuelve menos ... inferible **. –

+0

He visto a algunas personas definir una entidad & nueva línea que se expande a . Pero eso solo hace que el código sea más legible para alguien que esté familiarizado con las convenciones que utiliza, por lo que no estoy seguro de que lo recomiende. –

33

En cuanto a los saltos de línea, yo prefiero una forma más explícita/legible.

<xsl:text>&#xa;</xsl:text> 
+0

Mucho mejor que elementos vacíos en mi opinión. +1 –

+0

+1 Sugerencia correcta. Además de eso, la convención no escrita es usar mayúsculas para referencias de caracteres hexadecimales, como en las especificaciones: '# xA'. Pero son insensibles a mayúsculas de todos modos. –

+0

+1 para la respuesta correcta. –

-2

etiquetas de uso es fácil de salida

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 
+2

Si hubiera leído la pregunta con más cuidado, habría visto que el resultado no es HTML. –

+0

gracias michael.hor257k :) –

Cuestiones relacionadas