2009-05-19 5 views
1

ma question est un peu différent de les autres ..Prévenir les espacements entre les deux éléments XSLT d'être enlevé par le xslt-processeur

i a obtenu un xsl-code comme ceci:

<xsl:value-of select="..."/> <xsl:value-of select="..."> 

ce que je veux dans mon résultat est:

result_of_select_1 result_of_select_2 

ce que je reçois est:

result_of_select_1result_of_select_2 

comment puis-je empêcher cela? (Toute xsl: option de sortie par exemple?)

Toutes les autres solutions i ont été trouvées specificly pour le même problème, mais dans le document XML Source et non dans le XSLT document comme celui-ci ...

BTW une solution comme "insérer des éléments à la place des espaces" ne sont pas une solution possible pour mon, parce que le xslt-code est généré dynamiquement

grâce à l'avance

Répondre

3

L'espace blanc que vous avez est insignifiant et se mis au rebut. Si ce n'était pas le cas, chaque dernier bit de l'espace blanc que vous avez dans votre code XSLT finirait dans le document de résultat. Vous devez être explicite sur l'espace blanc que vous voulez dans le résultat.

utilisateur soit:

<xsl:value-of select="concat(..., ' ', ...)" /> 

ou:

<xsl:value-of select="..." /> 
<xsl:text> </xsl:text> 
<xsl:value-of select="..." /> 
+0

Tomalak, ce n'est pas une bonne idée d'utiliser l'espace n'importe où dans le xslt si vous voulez o/p espace. Au lieu de cela, vous devriez utiliser soit ou

+0

Pourquoi cela serait-il mieux? L'échappement (' ') et la forme littérale ('') du caractère d'espace sont absolument équivalents. La forme échappée est beaucoup plus typée et encombre le code source inutilement. – Tomalak

+0

Il est recommandé d'utiliser des caractères ascii plutôt que d'utiliser un espace vide. –

1

Utilisation:

<xsl:value-of select="..."/><xsl:text>&#32;</xsl:text><xsl:value-of select="..."> 

EDIT:

Référez à cette ASCII table pour d'autres symboles

+0

Cela ne va pas travailler parce que l'entité sera convertie en un espace lorsque le xml pour la feuille de style est analysé. À ce stade, il deviendra un espace insignifiant de la même manière que le xslt dans la requête d'origine. –

+1

Je ne suis pas d'accord ... Je l'ai utilisé tout au long de l'application sans aucun problème. sera o/p 'abcabc' Mais, &£32; produira 'abc abc' –

+0

Je suis d'accord avec la réponse de Ms.Rashmi Pandit .. +1 –