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 :

XML To Texte


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Femme Profil pro
    developpement
    Inscrit en
    Décembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : developpement
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 17
    Points : 14
    Points
    14
    Par défaut XML To Texte
    Bonjour,

    Je converti un fichier xml en un fichier txt coome suit :

    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
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
    >
      <xsl:output method="text"/>
     
      <xsl:variable name="newLine" select="translate('&#xa;','','')"/>
     
     
      <xsl:template match="Regles">
        <xsl:value-of select="$newLine" />
        <xsl:apply-templates select="*" />
      </xsl:template>
      <xsl:template match="Regle">
        <!-- Recuperation des informations du fichier XML -->
        <xsl:variable name="chp1" select="./chp1" />
        <xsl:variable name="chp2" select="./chp2" />
        <xsl:variable name="chp3" select="./chp3"/>
        <!-- Generation du contenu -->
        <xsl:value-of select="$chp1" />
        <xsl:text>;</xsl:text>
        <xsl:value-of select="$chp2" />
        <xsl:text>;</xsl:text>
        <xsl:value-of select="$chp3" />
      </xsl:template>
    </xsl:stylesheet>
    je souhaite générer les données dans un fichier text selon le format suivant :

    chp1;chp2;chp3

    mais ça me génère

    chp1;
    chp2
    ;
    chp3

    Merci de m'aider à résoudre ce problème.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    J'ai bien une idée, mais tu devrais pas poser des questions sans montrer un extrait du fichier XML lui-même.

  3. #3
    Membre à l'essai
    Femme Profil pro
    developpement
    Inscrit en
    Décembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : developpement
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par thelvin Voir le message
    J'ai bien une idée, mais tu devrais pas poser des questions sans montrer un extrait du fichier XML lui-même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <Regles>
     <Regle>
        <chp1>aaa</chp1>
        <chp2>bbb</chp2>
        <chp3>
          ccc
        </chp3>
      </Regle>
    </Regles>
    Je souhaite avoir le texte suivant en sortie :
    aaa;bbb;ccc (sur la meme ligne)

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Vous pensez en terme de program procédural, pas assez de functional, loin de là.
    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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" omit-xml-declaration="yes" encoding="utf-8" />
    <xsl:strip-space elements="*" />
    <xsl:template match="/">
        <xsl:call-template name="csv" />
    </xsl:template>
    <xsl:template name="csv">
        <xsl:for-each select="//text()">
            <xsl:value-of select="normalize-space()" />
                <xsl:if test="position()!=last()">
                    <xsl:text>;</xsl:text>
                </xsl:if>
        </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Vous pensez en terme de program procédural, pas assez de functional, loin de là.
    C'est vrai, mais enfin :
    - la nature du problème n'est pas là.
    - s'intéresser aux text() plutôt qu'aux éléments, c'est guère mieux.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" encoding="utf-8" />
    <xsl:strip-space elements="*" />
     
    <xsl:template match="Regle">
      <xsl:for-each select="*">
        <xsl:value-of select="normalize-space(.)" />
        <xsl:if test="position()!=last()">;</xsl:if>
      </xsl:for-each>
      <xsl:text>&#xA;</xsl:text>
    </xsl:template>
     
    </xsl:stylesheet>
    C'est bien suffisant.

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Peut-être; c'est si vous voulez. Enfin, c'est comme vous voulez; je n'ai rien à vous apprendre.

Discussions similaires

  1. Fichier XML ou texte ?
    Par ralf91 dans le forum C#
    Réponses: 3
    Dernier message: 07/05/2008, 20h52
  2. [XSLT] export XML vers texte plat sans délimiteur
    Par juanito003 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/11/2007, 17h05
  3. Comment transformé de xml en texte simple ?
    Par scaleo dans le forum C#
    Réponses: 4
    Dernier message: 23/06/2007, 17h04
  4. Xml Flash texte
    Par sisssi_1 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 26/06/2006, 23h13
  5. [XSLT] XML to Text
    Par syvid dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 07/06/2006, 15h44

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