Aller a la ligne dans mon XSL sans generer de retour chariot ?

Aller a la ligne dans mon XSL sans generer de retour chariot ? - XML/XSL - Programmation

Marsh Posté le 08-03-2005 à 16:34:57    

Je dois ecrire un XSL extremement "touffu" pour generer du CSV ... j'aimerais bien formater mon XSL avec des retours chariots apres chaque virgule (pour aerer CSV, sans evidemment que ca transparaisse dans le fichier ...

Reply

Marsh Posté le 08-03-2005 à 16:34:57   

Reply

Marsh Posté le 08-03-2005 à 22:16:40    

tu peux le faire en utilisant <xsl:text/>
 
http://msdn.microsoft.com/library/ [...] lement.asp

Reply

Marsh Posté le 09-03-2005 à 13:14:56    

Ca a l'air de faire ce que je veux, mais j'ai un petit souci avec Xalan : on ne peut pas encapsuler <xsl:call-template> dans <xsl:text> :/ (ce qui semble logique mais qui m'arrange pas)

<xsl:text>
<xsl:call-template name="eventType"/>,
<xsl:call-template name="timestamp"/>,
<xsl:call-template name="version"/>,  
</xsl:text>


ca marche pas ... je vais pas mettre mes "call-templates" sur une seule ligne quand meme, j'en ai presque 200 :(
 
PS : J'ai aussi essayer de ruser comme un sioux en mettant juste le retour chariot dans mon <xsl:text>, ca fait rien:

<xsl:call-template name="eventType"/>,<xsl:text>
</xsl:text><xsl:call-template name="timestamp"/>,<xsl:text>
</xsl:text><xsl:call-template name="version"/>,


PPS : Egalement, je comprends pas pourquoi l'exemple que tu me donnes utilise <xsl:text/> et non pas <xsl:text>le texte</xsl:text>


Message édité par Gonzoide le 09-03-2005 à 13:23:50
Reply

Marsh Posté le 09-03-2005 à 13:30:47    

déjà avoir 200 call templates dans une règle, tu devrais te poser des questions ...
 
ensuite, xsl:text ne peut pas avoir de fils => pas la peine d'essayer de mettre des balises dedans  
 
 
moi ce que je te disais c'est de faire ca (comme dans lexemple en bas du lien que je t'ai filé) :
 
 

 <xsl:call-template name="eventType"/>,<xsl:text/>
  <xsl:call-template name="timestamp"/>,<xsl:text/>
  <xsl:call-template name="version"/>


ca indique juste au processur que les caractères blancs ne doivent pas être pris en compte ...

Reply

Marsh Posté le 09-03-2005 à 13:34:55    

Gonzoide a écrit :


PPS : Egalement, je comprends pas pourquoi l'exemple que tu me donnes utilise <xsl:text/> et non pas <xsl:text>le texte</xsl:text>


d'après ce que j'en comprends, dès que tu mes xsl:text à un endroit dans une règle ca signifit que tu prends le contrôle du texte autour du xsl:text : les caracctères blancs sont ignorés, à moins que tu les inclus explicitement dans le xsl:text
 
donc le fait de mettre un xsl:text vide permet juste d'ignorer les espaces et retour à la ligne autour ...
 
c'est comme ca que je vois la chose, et que je comprends les explications de la msdn

Reply

Marsh Posté le 09-03-2005 à 13:37:05    

benou a écrit :


 

 <xsl:call-template name="eventType"/>,<xsl:text/>
  <xsl:call-template name="timestamp"/>,<xsl:text/>
  <xsl:call-template name="version"/>


ca indique juste au processur que les caractères blancs ne doivent pas être pris en compte ...


 
Cool ca marche, merci :jap:
 
Sinon, pour le coup des 200 regles, t'imagines meme pas le temps que j'ai passe a essaye de convaincre tout le monde qu'il ne fallait pas, mais chez nous le client est roi :crazy:

Reply

Marsh Posté le 09-03-2005 à 13:38:15    

je veux dire qu'il y a surement une façon plus élégante de lécrire nan ?
tu pourrais par exemple générer cette la xsl qui contient tous ces moches call-template (avec une xsl, pkoi pas ;))

Reply

Marsh Posté le 09-03-2005 à 13:45:10    

Ben je dois transformer une collection de gros objets XML en un fichier CSV qui contient presque 200 colonnes, avec des regles a la con ... y'a des blocs de colonnes qui se repetent donc j'economise un peu, mais au final je suis oblige d'utiliser "call-template" avec l'objet courant en parametre, au lieu de betement utiliser "apply-templates" :( :vomi:


Message édité par Gonzoide le 09-03-2005 à 13:45:32
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed