IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] Supprimer les tabulations en sortie


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut [XSLT] Supprimer les tabulations en sortie
    Bonjour,

    J'exporte une requête Access que je traite avec la transformation suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?xml version="1.0" encoding="UTF-8" ?> 
    - <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" indent="yes" /> 
    - <xsl:template match="/">
    - <xsl:element name="PROJET">
    - <xsl:attribute name="CODE">
      <xsl:value-of select="//R-Miseenforme/PROJET" /> 
      </xsl:attribute>
    - <xsl:element name="article">
    - <xsl:element name="code">
      <xsl:value-of select="//R-Miseenforme/code" /> 
      </xsl:element>
    - <xsl:element name="desc">
      <xsl:value-of select="//R-Miseenforme/desc" /> 
      </xsl:element>
    - <xsl:element name="nature">
      <xsl:value-of select="//R-Miseenforme/nature" /> 
      </xsl:element>
    - <xsl:element name="textearticle">
    - <xsl:attribute name="langue">
      <xsl:value-of select="//R-Miseenforme/textearticle_langue" /> 
      </xsl:attribute>
    - <xsl:for-each select="//R-Miseenforme/lignetxtart">
    - <xsl:element name="lignetxtart">
      <xsl:value-of select="." /> 
      </xsl:element>
      </xsl:for-each>
      </xsl:element>
      </xsl:element>
      </xsl:element>
      </xsl:template>
      </xsl:stylesheet>

    J'obtiens le résultat souhaité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    - <PROJET CODE="111">
    - <article>
      <code>222</code> 
      <desc>333</desc> 
      <nature>444</nature> 
    - <textearticle langue="4">
      <lignetxtart>|1|BAVETTE L|Flap|S235JRG2/DD11|3</lignetxtart> 
      <lignetxtart>|1|BEC L|Nose|S235JRG2/DD11|3</lignetxtart> 
      <lignetxtart>|1|CADRE L|Outlet frame|S235JRG2/DD11|8</lignetxtart> 
      <lignetxtart>|1|FLASQUE ASPIRATION L|Inlet flange|S235JRG2/DD11|6</lignetxtart> 
      <lignetxtart>|1|FLASQUE MECANIQUE L|Mechanical Flange|S235JRG2/DD11|6</lignetxtart> 
      <lignetxtart>|1|PORTE VISITE L|Access Door|S235JRG2/DD11|3</lignetxtart> 
      <lignetxtart>|1|VOLUTE L|Scroll|S235JRG2/DD11|3</lignetxtart> 
      <lignetxtart>|1|VOLUTE L|Scroll part2|S235JRG2/DD11|3</lignetxtart> 
      </textearticle>
      </article>
      </PROJET>

    Enfin presque, je souhaiterais au final faire disparaitre les tabulations quand je visualise au format texte (avec ultraEdit par exemple) et obtenir cela :

    <PROJET CODE="111">
    <article>
    <code>222</code>
    <desc>333</desc>
    <nature>444</nature>
    <textearticle langue="4">
    <lignetxtart>|1|BAVETTE L|Flap|S235JRG2/DD11|3</lignetxtart>
    <lignetxtart>|1|BEC L|Nose|S235JRG2/DD11|3</lignetxtart>
    <lignetxtart>|1|CADRE L|Outlet frame|S235JRG2/DD11|8</lignetxtart>
    <lignetxtart>|1|FLASQUE ASPIRATION L|Inlet flange|S235JRG2/DD11|6</lignetxtart>
    <lignetxtart>|1|FLASQUE MECANIQUE L|Mechanical Flange|S235JRG2/DD11|6</lignetxtart>
    <lignetxtart>|1|PORTE VISITE L|Access Door|S235JRG2/DD11|3</lignetxtart>
    <lignetxtart>|1|VOLUTE L|Scroll|S235JRG2/DD11|3</lignetxtart>
    <lignetxtart>|1|VOLUTE L|Scroll part2|S235JRG2/DD11|3</lignetxtart>
    </textearticle>
    </article>
    </PROJET>


    Merci de votre aide

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Avez-vous déjà essayé avec indent="no" ?
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Oui, j'ai essayé avec indent="no", ça met vraiment tout à plat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <PROJET CODE="111"><article><code>222</code><desc>333</desc><nature>444</nature><textearticle langue="4"><lignetxtart>|1|BAVETTE L|Flap|S235JRG2/DD11|3</lignetxtart><lignetxtart>|1|BEC L|Nose|S235JRG2/DD11|3</lignetxtart><lignetxtart>|1|CADRE L|Outlet frame|S235JRG2/DD11|8</lignetxtart><lignetxtart>|1|FLASQUE ASPIRATION L|Inlet flange|S235JRG2/DD11|6</lignetxtart><lignetxtart>|1|FLASQUE MECANIQUE L|Mechanical Flange|S235JRG2/DD11|6</lignetxtart><lignetxtart>|1|PORTE VISITE L|Access Door|S235JRG2/DD11|3</lignetxtart><lignetxtart>|1|VOLUTE L|Scroll|S235JRG2/DD11|3</lignetxtart><lignetxtart>|1|VOLUTE L|Scroll part2|S235JRG2/DD11|3</lignetxtart></textearticle></article></PROJET>

    le problème est que je souhaite conserver les retours à la ligne.


    Merci

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Dans ce cas, il faudrait rajouter partout des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         <xsl:text>
    </xsl:text>
    pour forcer des sauts de ligne relativement proprement...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Ai-je bien compris ?

    Je laisse indent="no" et je place des <xsl:text></xsl:text> à chaque saut de ligne souhaité, mon fichier de transformation devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" indent="no" />
    <xsl:template match="/">
    <xsl:element name="PROJET">
    <xsl:attribute  name = "CODE" >	
    <xsl:value-of select="//R-Miseenforme/PROJET" />
    </xsl:attribute>
    <xsl:text>
    </xsl:text>
    <xsl:element name="article">
    <xsl:text>
    </xsl:text>
    <xsl:element name="code">
    <xsl:value-of select="//R-Miseenforme/code" />		
    </xsl:element>
    <xsl:text>
    </xsl:text>
    <xsl:element name="desc">
    <xsl:value-of select="//R-Miseenforme/desc" />		
    </xsl:element>
    <xsl:text>
    </xsl:text>
    <xsl:element name="nature">
    <xsl:value-of select="//R-Miseenforme/nature" />		
    </xsl:element>
    <xsl:text>
    </xsl:text>
    <xsl:element name="textearticle">
    <xsl:attribute  name = "langue" >
    <xsl:value-of select="//R-Miseenforme/textearticle_langue" />
    </xsl:attribute>
    <xsl:text>
    </xsl:text>
    <xsl:for-each select="//R-Miseenforme/lignetxtart">
    <xsl:text>
    </xsl:text>
    <xsl:element name="lignetxtart">
    <xsl:value-of select="." />	
    </xsl:element>
    </xsl:for-each>
    <xsl:text>
    </xsl:text>
    </xsl:element>
    <xsl:text>
    </xsl:text>
    </xsl:element>
    <xsl:text>
    </xsl:text>
    </xsl:element>
    <xsl:text>
    </xsl:text>
    </xsl:template>
    </xsl:stylesheet>
    Je dois mal m'y prendre, j'obtiens le même résultat qu'avec indent="yes" sans les sauts de ligne forcés. Dans un éditeur de texte, j'ai toujours les tabulations dont je voulais me débarasser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <PROJET CODE="111">
    	<article>
    		<code>222</code>
    		<desc>333</desc>
    		<nature>444</nature>
    		<textearticle langue="4">
    			<lignetxtart>|1|BAVETTE L|Flap|S235JRG2/DD11|3</lignetxtart>
    			<lignetxtart>|1|BEC L|Nose|S235JRG2/DD11|3</lignetxtart>
    			<lignetxtart>|1|CADRE L|Outlet frame|S235JRG2/DD11|8</lignetxtart>
    			<lignetxtart>|1|FLASQUE ASPIRATION L|Inlet flange|S235JRG2/DD11|6</lignetxtart>
    			<lignetxtart>|1|FLASQUE MECANIQUE L|Mechanical Flange|S235JRG2/DD11|6</lignetxtart>
    			<lignetxtart>|1|PORTE VISITE L|Access Door|S235JRG2/DD11|3</lignetxtart>
    			<lignetxtart>|1|VOLUTE L|Scroll|S235JRG2/DD11|3</lignetxtart>
    			<lignetxtart>|1|VOLUTE L|Scroll part2|S235JRG2/DD11|3</lignetxtart>
    		</textearticle>
    	</article>
    </PROJET>

    Merci de votre aide...

Discussions similaires

  1. Supprimer les tabulations multiples
    Par snorky94 dans le forum VBScript
    Réponses: 3
    Dernier message: 26/11/2012, 17h08
  2. [XSLT] Supprimer les noeuds vides
    Par knebhi dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/02/2009, 16h07
  3. [XSLT] Supprimer les caractères spéciaux HTML d'un noeud texte
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/12/2008, 22h59
  4. Réponses: 5
    Dernier message: 09/08/2007, 10h25
  5. [XSLT] Réordonner les éléments en sortie
    Par crossword dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/12/2005, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo