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

Bibliothèques et frameworks PHP Discussion :

[XSLT] Problème déclaration xml (php/xslt)


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut [XSLT] Problème déclaration xml (php/xslt)
    Bonjour,
    j'utilise php+xslt pour parser mes fichiers xml.

    Je tourne sur php5 et les transformations se déroulent trés bien, mise à part qu'a la sortie dans mon document l'entête xml s'affiche:

    ex page php:
    <body>
    <?xml version="1.0" encoding="utf-8"?>
    contenue parser
    </body>

    Comment faire pour que dans ma page php seul le contenu html s'affiche sans <?xml version="1.0" encoding="utf-8"?>

    Merci d'avance pour votre aide,
    Cordialement,
    Thibaut

  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
    Ne serait-ce pas l'élément xsl:output qui serait absent ou déclaré dans un tout autre sens ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Merci pour votre aide,
    dans mes documents xsl, l'entête est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?><!DOCTYPE xsl:stylesheet  [
    	<!ENTITY nbsp   " ">
    	<!ENTITY copy   "©">
    	<!ENTITY reg    "®">
    	<!ENTITY trade  "™">
    	<!ENTITY mdash  "—">
    	<!ENTITY ldquo  "“">
    	<!ENTITY rdquo  "”"> 
    	<!ENTITY pound  "£">
    	<!ENTITY yen    "¥">
    	<!ENTITY euro   "€">
    ]>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8"/>

  4. #4
    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
    Il faut donc changer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:output method="xml" encoding="utf-8"/>
    pour HTML

  5. #5
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    J'avais déjà effectué le test et je viens rééffectuer des tests avec
    l'entête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!DOCTYPE xsl:stylesheet  [
    	<!ENTITY nbsp   " ">
    	<!ENTITY copy   "©">
    	<!ENTITY reg    "®">
    	<!ENTITY trade  "™">
    	<!ENTITY mdash  "—">
    	<!ENTITY ldquo  "“">
    	<!ENTITY rdquo  "”"> 
    	<!ENTITY pound  "£">
    	<!ENTITY yen    "¥">
    	<!ENTITY euro   "€">
    ]>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?><!DOCTYPE xsl:stylesheet  [
    	<!ENTITY nbsp   " ">
    	<!ENTITY copy   "©">
    	<!ENTITY reg    "®">
    	<!ENTITY trade  "™">
    	<!ENTITY mdash  "—">
    	<!ENTITY ldquo  "“">
    	<!ENTITY rdquo  "”"> 
    	<!ENTITY pound  "£">
    	<!ENTITY yen    "¥">
    	<!ENTITY euro   "€">
    ]>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    mais en sortie j'ai toujours l'entête xml avec standalone yes en plus:
    <?xml version="1.0" standalone="yes"?>

  6. #6
    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
    Vous utilisez la méthode transformToXML et non transformToDoc de XSLTProcessor ? (enfin façon de parler)

  7. #7
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Merci encore pour votre aide, c'est vraiment sympa

    j'utilise une class php fourni par dreamweaver, voici la fonction utlisant php5
    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
    		function transformDocument_domxml5(&$xml, &$xsl, &$params) {
    			$magic_quotes_runtime_orig = get_magic_quotes_runtime();
    			set_magic_quotes_runtime(0);
    			$xmlDom = new DOMDocument;
    			$xslDom = new DOMDocument;
    			$xmlDom->loadXML($xml);
    			$xslDom->loadXML($xsl);
    			$proc = new XSLTProcessor;
    			foreach ($params as $key => $value) {
    				$proc->setParameter('', $key, $value);
    			}
    			$old_error_reporting = error_reporting(E_ALL);
    			$old_error_handler = set_error_handler(array(&$this, 'util_errorHandler'));
    			$proc->importStyleSheet($xslDom);
    			$result = $proc->transformToDoc($xmlDom);
    			restore_error_handler();
    			error_reporting($old_error_reporting);
    			if ($this->hasError()) {
    				$myError = $this->getErrorFromCode('MM_TRANSFORMATION_ERROR');
    				$myError .= $this->getRawError();
    				$myError .= $this->getErrorFromCode('MM_TRANSFORM_D5_ERROR', array($this->xslname));
    				$myError .= $this->util_htmlentities($xsl);
    				$this->setError($myError);
    				set_magic_quotes_runtime($magic_quotes_runtime_orig);
    				return;
    			}
    			$output = $result->saveXML();
    			set_magic_quotes_runtime($magic_quotes_runtime_orig);
    			return $output;
    		}
    Il semble bien que la fonction utilisée soit transformToDoc.

  8. #8
    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
    Tentez de remplacer (seulement) les deux lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			$result = $proc->transformToDoc($xmlDom);
    // [...]
    			$output = $result->saveXML();
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = $proc->transformToXML($xmlDom);
    Si vous ne l'avez pas déjà fait

  9. #9
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup pour votre aide précieuse,
    en effet c' était la solution et je n'avais pas effectué ce test, ni même imaginé.

    Donc tout marche nickel maintenant grave à vous.

    Bonne journée,
    Thibaut

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

Discussions similaires

  1. Problème entre xml et xslt
    Par pwyll2 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 26/02/2010, 03h11
  2. [XSLT] Problème d'affichage php xsl
    Par grincheux01 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/10/2007, 15h28
  3. [XSLT] Problème pour : XML + XSLT(ou XSL) = XML
    Par jenfree dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 18/04/2007, 17h28
  4. [PHP][XSLT] problème caractères accentués
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 29/05/2006, 09h29
  5. [XSLT] Utilisation de XML avec PHP dans le cadre d'un site
    Par nicolas66 dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 06/11/2005, 22h39

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