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

XML/XSL et SOAP Discussion :

Problème si une balise n'existe pas


Sujet :

XML/XSL et SOAP

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Problème si une balise n'existe pas
    Bonjour tous le monde!

    J'viens de lire le jolie tuto proposé sur cette page: http://haypo.developpez.com/tutoriel/xml/xslt/

    Mais mon petit soucis c'est que si une balise est ouverte et qu'elle n'est pas refermé dans mon fichier liste.xml, ça me renvoi cette erreur:
    Warning: Sablotron error on line 6: XML parser error 7: mismatched tag in /home.5/s/e/r/servicesng/www/fre/fre.php on line 7
    Erreur XSLT ...
    Voici mon code:
    fichier php:
    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
    <?php
    // Crée le processeur XSLT
    $xh = xslt_create();
    xslt_set_base ($xh, 'file://' . getcwd () . '/');
     
    // Traite le document, puis affiche le résultat
    $result = xslt_process($xh, 'liste.xml', 'xslt.xsl');
    if (!$result)
      echo ("Erreur XSLT ...");
    else
      echo ($result);
     
    // Détruit le processeur XSLT
    xslt_free($xh);
    ?>
    Fichier liste.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <p>
    <gras>Salut ça va?</gras>
    <ren>Kikou
    <rien>ouaip et toi?</rien>
    </p>
    Fichier xslt.xsl:
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output 
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD XHTML 1.1//EN"
      doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
      indent="yes" />
     
     
    <xsl:template match="p">
    <p>
    <xsl:apply-templates select="gras" />
    <xsl:apply-templates select="italique" />
    <xsl:apply-templates select="rien" />
    </p>
    </xsl:template>
     
    <xsl:template match="gras">
    <strong><xsl:value-of select="." /></strong>
    </xsl:template>
     
    <xsl:template match="italique">
    <em><xsl:value-of select="." /></em>
    </xsl:template>
     
    <xsl:template match="rien">
    <xsl:value-of select="." />
    </xsl:template>
     
    </xsl:stylesheet>
    Ce que je souhaiterais c'est que si une balise est ouverte et n'est pas refermé alors qu'elle soit traité comme du texte normal.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par SouCaline
    Ce que je souhaiterais c'est que si une balise est ouverte et n'est pas refermé alors qu'elle soit traité comme du texte normal.
    Dans ce cas il ne s'agit pas de XML !!! Relire la norme sur le w3c.


    Julp.

  3. #3
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ce n'est pas possible...

    pour être traité par XSLT, ton document XML doit être bien formé, c'est à dire (notamment) que toutes les balises ouvertes doivent être refermées...

    si tu veux qu'elle soit considérée comme du texte, tu as deux choix :
    remplacer < par &lt; et > par &gt;

    la mettre dans une section CDATA :
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/07/2009, 11h52
  2. [XSLT] Détecter qu'une balise n'existe pas ou est vide
    Par Xunil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 26/12/2006, 18h59
  3. [META] Une balise pour ne pas mettre la page dans le cache
    Par PierrotY dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/06/2006, 07h36
  4. Réponses: 3
    Dernier message: 09/05/2006, 17h21
  5. problème avec une balise <A>
    Par leywos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/09/2005, 09h24

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