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 averti
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    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
    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 Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    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