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 :

[XML] Affichage XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 14
    Points
    14
    Par défaut [XML] Affichage XML
    Bonjour,

    Je n'arrive pas à retrouver la fonction php qui permet d'afficher une page dont le code source est identique à la chaine de caracteres dont je dispose au départ (qui représente dans mon cas un fichier XML).

    En gros je voudrais que le code source de ma page soit le suivant :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="UTF-8"?>

    Mais je me retrouve avec le code source suivant :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

    (j'ai cru comprendre qu'il me fallait l'inverse de la fonction HtmlEntities())
    Merci de votre aide!

  2. #2
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    regarde dans la doc php la fonction html_entity_decode(). Je pense que c'est ce que tu cherches.
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai déjà essayé cette fonction mais elle supprime les balises et leurs attributs, elle ne garde que les valeurs entre deux balises.

    Or je veux afficher l'equivalent d'un fichier XML !

    Merci pour ton aide

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    ah j'ai presque trouvé!

    il me faudrait la fonction inverse de htmlspecialchars()

    si quelqu'un a une idée...

  5. #5
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    je ne comprend pas pourquoi html_entity_decode ne fonctionne pas pour toi.
    html_entity_decode() is the opposite of htmlentities() in that it converts all HTML entities to their applicable characters from string.
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  6. #6
    Membre du Club Avatar de Shin_RockmanX
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    En fait tu cherches à faire quoi???
    à afficher le contenu d'un fichier XML?? avec les balises < et >???
    les balises sont pas supprimées (elle sont dans la source) mais elles ne s'affichent pas vu qu'elle sont interprétée comme du HTML.
    Ce qu'il faut faire à mon avis, c'est le html_entity_decode() et ensuite remplacer < et > par leur code html via la fonction str_replace()

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Bon je vais essayer de m'expliquer différemment.

    Je dispose d'une chaine qu'on va appeler $ma_chaine.

    lorsque je fais un echo $ma_chaine, ma chaine s'affiche bien mais en fait je voudrais que le code source de la page générée soit ma chaine de départ et non ma chaine formatée

    Exemple :

    Voici le code source de la page actuelle :



    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
    &lt;CSRP_ENVELOPPE xmlns=&quot;urn:x-csrp:fr.csrp.protocole:enveloppe&quot; Nature_Action=&quot;REP_EMISSION&quot; Version_Protocole=&quot;1.0.0.0&quot; Id_Logiciel=&quot;WinPharma&quot; Usage=&quot;P&quot; Version_Logiciel=&quot;5.3.33&quot;&gt;
    &lt;ENTETE&gt;
    &lt;EMETTEUR Nature=&quot;RE&quot; Adresse=&quot;NEPENTHES&quot; Code=&quot;00&quot; Id=&quot;00&quot;/&gt;
    &lt;RECEPTEUR Nature=&quot;OF&quot; Id=&quot;02011137&quot; Adresse=&quot;17 chaussé¥ de la madeleine  44000 NANTES&quot;/&gt;
    &lt;REF_MESSAGE&gt;ER7D509140A8C6058&lt;/REF_MESSAGE&gt;
    &lt;EN_REPONSE_A/&gt;
    &lt;/ENTETE&gt;
    &lt;CORPS&gt;
     &lt;ERREUR Description_libre=&quot;Votre commande n&apos;a pas ete integree&quot;/&gt;
    &lt;/CORPS&gt;
    &lt;/CSRP_ENVELOPPE&gt;



    Et voici le code source que je veux obtenir (qui correspond a ma chaine).


    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8"?>
    <CSRP_ENVELOPPE xmlns="urn:x-csrp:fr.csrp.protocole:enveloppe" Nature_Action="REP_EMISSION" Version_Protocole="1.0.0.0" Id_Logiciel="WinPharma" Usage="P" Version_Logiciel="5.3.33">
    <ENTETE>
    <EMETTEUR Nature="RE" Adresse="NEPENTHES" Code="00" Id="00" />
    <RECEPTEUR Nature="OF" Id="02011137" Adresse="17 chauss饠de la madeleine  44000 NANTES" />
    <REF_MESSAGE>ER7D509140A8C6058</REF_MESSAGE>
    <EN_REPONSE_A></EN_REPONSE_A>
    </ENTETE>
    <CORPS>
     <ERREUR Description_libre="Votre commande n'a pas ete integree"/>
    </CORPS>
    </CSRP_ENVELOPPE>


    En fait le résultat n'est pas surprenant mais logique ; php interprete la structure echo pour un affichage tel quel de ma chaine.
    Le problème c'est que je ne sais pas comment faire en php pour empecher ce reformatage de ma chaine...
    En plus je l'ai déjà fait mais impossible de retrouver cette satanée fonction!

    Est-ce un peu plus clair???

    Merci de vos réponses !!!

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    En fait si vous voulez savoir ce que je veux faire rien de plus simple :

    Au lieu de me contenter d'afficher le contenu d'un fichier XML je veux que le navigateur affiche le code XML comme s'il s'agissait d'un fichier; en gros je veux que le navigateur reconnaisse le format XML et me l'affiche structuré, comme lors de l'ouverture d'un fichier XML avec IE.

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    var_dump($ma_chaine); donne quoi ?
    Comment affiche tu cette chaine ? bout de code ?
    Exemple en ligne ?

  10. #10
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut essaie ca pour rétablir ta chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str = str_replace(array('&quot;', 'lt;', 'gt;'), array('"', '<', '>'), $str);
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Il n'est pas normal que ta chaîne contienne ces données.
    Tu as du faire une erreur de manipulation lorsque tu l'as récupérée.
    Boost ftw

  12. #12
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    voici le bout de code correspondant à ce que je veux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
     
    /* lit un fichier XML et garde son contenu dans une chaine */
    $dom_=new DOMDocument();
    $dom_->load(mon_fichier.xml);
    $ma_chaine = $dom_->saveXML();
     
    /* affiche le contenu */
    echo $ma_chaine;
     
    ?>
    Concrètement, j'aimerais que mon programme fasse la même chose que quand je lance à la main mon_fichier.xml (ouvrir avec -> IE).
    En effet dans ce cas IE affiche bien le fichier, coloré etc avec les balises exactement comme je veux que mon script fasse.

    Mais je n'y arrive pas, malgré mes multiples tentatives...
    Pourtant ça doit être possible

    Si quelqu'un pouvait au moins me dire comment afficher un fichier XML ca m'aiderait sûrement!

    Merci d'avance

  13. #13
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Normalement ton code affiche ce qu'il faut sans aucun problème, à moins que tu es une bufférisation qui convertit ton code.
    Boost ftw

Discussions similaires

  1. Affichage d'un XML chargé par SOAP
    Par glanumf dans le forum ASP
    Réponses: 3
    Dernier message: 12/04/2005, 11h27
  2. Affichage sources XML
    Par k0ntakt dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/01/2005, 17h06
  3. Réponses: 13
    Dernier message: 14/06/2004, 15h35
  4. Optimiser l'affichage d'un fichier XML de grosse taille...
    Par UnPeuPerdu dans le forum XML/XSL et SOAP
    Réponses: 11
    Dernier message: 03/06/2004, 16h01
  5. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46

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