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 :

Conversion XML en autre fichier avec caractères <, >, & [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut Conversion XML en autre fichier avec caractères <, >, &
    Bonjour,

    Je souhaite convertir un fichier XML en fichier quelconque, mais je souhaiterai conserver les caractères <, > et &, comment faire ?

    Exemple de fichier XML contenant la balise suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <codebrute><![CDATA[
    	<?php echo "Bonjour\n<br>Bye ! ?>
    	]]></codebrute>
    Je souhaite avoir dans le fichier final :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo "Bonjour\n<br>Bye ! ?>
    et non
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;?php echo "Bonjour\n&lt;br&gt;Bye ! ?&gt;

    Comment faire ?

    J'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      <!-- Code Brut dans la page WEB -->
      <xsl:template match="codebrute">
        <xsl:value-of select="."/>
      </xsl:template>
    !

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je me réponds !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="." disable-output-escaping="yes"/>

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par djibril Voir le message
    Je me réponds !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="." disable-output-escaping="yes"/>
    Pas terrible et assez mal géré.

    Utiliser plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:output method="text"/>
    juste sous <xsl:stylesheet>.

    disable-output-escaping, lorsqu'il est géré, est censé servir dans des situations particulières, où on veut écrire au milieu d'un fichier HTML ou XML, comme si on écrivait du texte brut.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Oui mais là j'ai simplifié pour avoir de l'aide , je suis déjà dans un gros fichier xsl qui parse un XML et j'avais ce cas particulier.

    disable-output-escaping, lorsqu'il est géré, est censé servir dans des situations particulières, où on veut écrire au milieu d'un fichier HTML ou XML, comme si on écrivait du texte brut.
    Je suis d'accord, c'est déjà ce que je fais, mais là je n'ai pas trouvé d'autres solutions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      <xsl:template match="codebrut" mode="tutoriel" >
        <xsl:value-of select="." disable-output-escaping="yes"/>
      </xsl:template>

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Bon, c'est pas compliqué :
    - Tu génères un fichier texte ou tu génères un fichier XML/HTML ?
    - Si c'est un fichier texte, utiliser <xsl:output method="text"/>, c'est fait pour.
    - Si c'est un fichier XML/HTML, disable-output-escaping est une solution raisonnable... Si ça marche. Sinon, tu peux émuler les balises PHP en faisant comme si c'était des processing-instructions. Syntaxiquement, c'est correct.

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je génère des fichiers XML/HTML... donc des balises à tout va et la solution du disable-output-escaping fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrier un fichier avec macro depuis un autre fichier avec macro
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2008, 11h23
  2. Réponses: 1
    Dernier message: 15/05/2007, 16h55
  3. Réponses: 4
    Dernier message: 31/07/2006, 09h31
  4. Probleme de lecture d'un fichier avec caractères speciaux
    Par bygui dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 26/06/2006, 09h35
  5. Excel : lien hypertexte vers un autre fichier avec nom page
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 09h33

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