2011-01-25 5 views
15

J'essaie de créer une sortie de texte à partir d'un fichier xml en utilisant xslt. C'est en fait un xslt qui crée du code SQL. Voici une partie qui génère les instructions CREATE TABLE:Comment puis-je ajouter un saut de ligne dans le texte que je crée avec 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>) 

Je veux avoir un saut de ligne après la « (» dans la première ligne, mais ne parvient pas à savoir comment faire tout le monde peut aider

.? ..

Répondre

11

Si vous mettez

<xsl:text> 
</xsl:text> 

dans votre XSLT, il donnera un saut de ligne on ne sait pas où vous voulez mettre cela je suppose que vous voulez:

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

En général, vous devriez toujours placer la sortie de texte dans l'enveloppe ... elle a l'air légèrement horrible dans le XSL mais elle préserve l'espacement. Notez que vous pouvez casser les lignes dans le fichier XSLT sans affecter le résultat - par ex.

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

et oui, je suis d'accord sur le caractère de saut de ligne explicite. Comme vous pouvez le voir le XSLT n'est pas très lisible mais il obtient la bonne réponse

+0

Vous avez écrit * "Comme vous pouvez le voir le XSLT n'est pas très lisible" *. C'est très subjectif. Je considère qu'avec 'xsl: text' la feuille de style ** devient très lisible **. Peut-être que vous voulez dire que la sortie ** devient moins ... inférable **. –

+0

J'ai vu certaines personnes définir une entité et une nouvelle ligne qui s'étend à . Mais cela ne fait que rendre le code plus lisible pour quelqu'un qui connaît les conventions qu'il utilise, donc je ne suis pas sûr de le recommander. –

33

Quant aux sauts de ligne, je préfère moi-même plus explicite/lisible.

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

Beaucoup mieux que des éléments vides à mon avis. +1 –

+0

+1 Suggestion correcte. En outre, cette convention non écrite est d'utiliser des majuscules pour les références de caractères hexadécimaux, comme dans les spécifications: '# xA'. Mais ils sont insensibles à la casse de toute façon. –

+0

+1 pour la bonne réponse. –

-2

étiquettes d'utilisation, il est facile sortie

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 vous aviez lu la question plus attentivement, vous auriez vu que la sortie n'est pas HTML. –

+0

merci michael.hor257k :) –

Questions connexes