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][PHP5] Impossible d'obtenir les CDATAS ...


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Par défaut [XSLT][PHP5] Impossible d'obtenir les CDATAS ...
    Bonjour,
    je m'arrache les cheveux sur quelquechose qui me paraissait simple a la base.

    J'ai un code xsl pour le menu du site qui fonctionne parfaitement, et impossible de faire la meme chose pour le contenu, voila les documents, si vous pouvez jeter un coup d'oeil et griller ce que j'ai certainement zappé en tant que débutant... merci beaucoup.

    la DTD:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <!ELEMENT PagePhX (ParaG)*>
        <!ATTLIST PagePhX xmlns CDATA #FIXED "http://www.eritroblast.com">
    		<!ATTLIST PagePhX idRoot ID #REQUIRED>
    		<!ATTLIST PagePhX idMax CDATA #IMPLIED>
    		<!ATTLIST PagePhX nbElements CDATA #REQUIRED>
     
        <!ELEMENT ParaG (#PCDATA)>
          <!ATTLIST ParaG xmlns CDATA #FIXED "http://www.eritroblast.com">
      		<!ATTLIST ParaG id ID #REQUIRED>
    le 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
     
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:output method="html" 
        media-type="text/html; charset=ISO-8859-1"/>
     
      <xsl:template match="PagePhX">
      <div id="datas" >
          <xsl:for-each select="ParaG">
            <div class="ParaG">
              <xsl:value-of select="current()" disable-output-escaping="yes" />
            </div>
          </xsl:for-each>
      </div>
    </xsl:template>
     
    </xsl:stylesheet>
    le XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE PagePhX SYSTEM "../../include/xml_css/datas.dtd">
    <?xml-stylesheet type="text/xsl" href="../../include/xml_css/datas.xsl"?>
    <PagePhX xmlns="http://www.eritroblast.com" idMax="A03" idRoot="root" nbElements="0">	
      <ParaG id="A02">sfdsdvsvsvcxfxvfdvfdv</ParaG>
      <ParaG id="A01"><![CDATA[Bienvenue, blablabla,<b>premi&egrave;re</b> page!]]></ParaG>
    </PagePhX>
    et la fonction 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
     
    function processDatas($fileXml,$fileXsl){
    // Load the XML source
    $xml = new DOMDocument;
    $xml->load($fileXml);
     
    $xsl = new DOMDocument;
    $xsl->load($fileXsl);
     
    // Configure the transformer
    $proc = new XSLTProcessor;
    $proc->importStyleSheet($xsl); // attach the xsl rules
     
    echo html_entity_decode($proc->transformToXML($xml));
    }

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    il me semble que le namespace utilisé dans ton XML n'est pas reporté dans ton XSLT. Essaie :
    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
    <?xml version="1.0" encoding="utf-8"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:truc="http://www.eritroblast.com"
    exclude-result-prefixes="truc">  
     <xsl:output method="html" 
        media-type="text/html; charset=ISO-8859-1"/> 
     
      <xsl:template match="truc:PagePhX"> 
      <div id="datas" > 
          <xsl:for-each select="truc:ParaG"> 
            <div class="ParaG"> 
              <xsl:value-of select="current()" disable-output-escaping="yes" /> 
            </div> 
          </xsl:for-each> 
      </div> 
    </xsl:template> 
     
    </xsl:stylesheet>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Par défaut
    "on est rien
    on est tout ptits
    on mérite paaaaaaaaas"


    merci merci merci, je vais pouvoir conserver mes cheveux !

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par Atruskor
    merci merci merci, je vais pouvoir conserver mes cheveux !
    Pour que je conserve les rares qui me restent, n'oublie pas de cliquer sur le bouton résolu.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

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

Discussions similaires

  1. Impossible d'obtenir les chiffres recherchés
    Par Asmodean dans le forum Débuter
    Réponses: 0
    Dernier message: 06/09/2011, 09h41
  2. [Google Maps] Impossible d'obtenir les coordonnées d'une adresse
    Par akrogames dans le forum APIs Google
    Réponses: 4
    Dernier message: 26/12/2010, 19h27
  3. Réponses: 1
    Dernier message: 18/09/2006, 10h51
  4. [VBA]Obtenir les noms des polices disponibles
    Par xp dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/03/2004, 15h39
  5. Obtenir les taches en cours
    Par mlerat22 dans le forum MFC
    Réponses: 3
    Dernier message: 17/06/2002, 12h36

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