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

PHP & Base de données Discussion :

formage xml php


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut formage xml php
    Bonjour à tous, j'en viens à vous car je ne trouve pas la solution à mon problème depuis un moment...

    Sachez d'avance que mon problème est basé sur un formatage xml, mais que la 'solution est de type php' c'est pourquoi je suis dans la section php,

    Bref, le problème est que lors que je génère un xml avec mon script php, le retour du navigateur est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Erreur d'analyse XML : mal formé
    Emplacement : http://127.0.0.1/ProjetMonopoly/index.php?statut=newgame&strat1=1&strat2=2&strat3=3&idpartie=1
    Numéro de ligne 1, Colonne 2 :
    <?xml version="1.0" encoding="utf-8"?>
    -^
    Voici ce que firebug me repond dans la partie "HTML" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <parsererror>
    Erreur d'analyse XML&nbsp;: mal formé Emplacement&nbsp;: http://127.0.0.1/ProjetMonopoly/index.php?statut=newgame&amp;strat1=1&amp;strat2=2&amp;strat3=3&amp;idpartie=1 Numéro de ligne 1, Colonne 2&nbsp;:
    <sourcetext>&lt;?xml version="1.0" encoding="utf-8"?&gt; -^</sourcetext>
    </parsererror>
    Voici comment je l'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $xml = simplexml_load_file($this->pathXmlInit);
    echo $xml->asXml();
    Enfin voici le xml que j'affiche :
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <mnop>
    	<partie id="1" tour="1" main="1">
    	<tirage>0</tirage>
    		<joueurs>
    			<joueur>
    				<argent>0</argent>
    				<position/>
    				<proprietes></proprietes>
    			</joueur>
    			<joueur>
    				<argent>0</argent>
    				<position/>
    				<proprietes></proprietes>
    			</joueur>
    			<joueur>
    				<argent>0</argent>
    				<position/>
    				<proprietes></proprietes>
    			</joueur>
    			<joueur>
    				<argent>0</argent>
    				<position/>
    				<proprietes></proprietes>
    			</joueur>
    		</joueurs>
    		<loterie>0</loterie>
    		<actionsDeJeu>
    		</actionsDeJeu>
    	</partie>
    PS : il y a un espaces sur la ligne 1 mais cela est interne au forum, dans mon script aucun espace 'subsiste'^^

    Merci de me donner des avis, cela m'enbete car c'est pour un projet d'etudiant...

  2. #2
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Hello,
    Ton xml a l'air correct, tu peux donner plus d'éléments ?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Par défaut
    Salut,

    As tu essayé de faire un ?

    Normalement cela suffit après l'utilisation de simplexml_load_file.

    Si ton xml est stocké physiquement as tu vérifié son encodage ?

    Tiens nous au courant

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Voila le code ce que m'affiche print_r($xml) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <body>SimpleXMLElement Object ( [partie] =&gt; SimpleXMLElement Object ( [@attributes] =&gt; Array ( [id] =&gt; 1 [tour] =&gt; 1 [main] =&gt; 1 ) [tirage] =&gt; 0 [joueurs] =&gt; SimpleXMLElement Object ( [joueur] =&gt; Array ( [0] =&gt; SimpleXMLElement Object ( [argent] =&gt; 0 [position] =&gt; SimpleXMLElement Object ( ) [proprietes] =&gt; SimpleXMLElement Object ( ) ) [1] =&gt; SimpleXMLElement Object ( [argent] =&gt; 0 [position] =&gt; SimpleXMLElement Object ( ) [proprietes] =&gt; SimpleXMLElement Object ( ) ) [2] =&gt; SimpleXMLElement Object ( [argent] =&gt; 0 [position] =&gt; SimpleXMLElement Object ( ) [proprietes] =&gt; SimpleXMLElement Object ( ) ) [3] =&gt; SimpleXMLElement Object ( [argent] =&gt; 0 [position] =&gt; SimpleXMLElement Object ( ) [proprietes] =&gt; SimpleXMLElement Object ( ) ) ) ) [loterie] =&gt; 0 [actionsDeJeu] =&gt; SimpleXMLElement Object ( [0] =&gt; ) )</body>
    En ce qui concerne l'encodage, sur notepad je les mis en utf8- sans bom
    Sachant que mon xml et charger comme ceci a chaque tours de partie :

    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
    public function chargeXml($val=""){
    		/*si nouveau jeux*/
    		if($val == 0){	
    			try{ 
    				/*charge le fichier xml de base et en fait une copie qui sera la partie en cours*/
    				$sFile = file_get_contents($this->pathXmlInit);
    				file_put_contents ($this->pathXmlEnCours,  $sFile);	
    				$this->xml->load($this->pathXmlEnCours);
    			}catch(Exception $e){
    				echo 'Exception reçue : ',  $e->getMessage(), "\n";
    			}
    		}else{
    			try{
    				$this->xml->load($this->pathXmlEnCours);
    			}catch(Exception $e){
    				echo 'Exception reçue : ',  $e->getMessage(), "\n";
    			}
    		}
    	}
    D'aprés ce que j'ai pu lire sur internet, l'erreur que j'ai a savoir ce bout de code (&#65279) qui vient s'incruster au debut du xml, serait du a l'encodage qui doit etre UTF-8 sans bom ce que je fait bien sur notepadd...

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Par défaut
    Salut,

    Dans ton fichier XML exemple, il y a une balise <mnop> qui n'est jamais fermée.

    Lorsque j'essaye de chargé ton XML avec cette balise je n'arrive à rien.
    En revanche lorsque je la retire , j'arrive correctement à afficher ton xml avec le code que tu as fournis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $xml = simplexml_load_file('testXml.xml');
      echo $xml->asXml();
    Je ne sais pas à quoi est destinée cette balise mais il me semble qu'elle pose problème ??

    Si cette balise ne règle pas ton problème je reviens sur l'histoire d'encodage qui effectivement doit aussi poser problème. Pour preuve les caractères spéciaux qui s'affiche dans les morceaux de code que tu nous fais parvenir, il y en a partout. Comment genères tu le fichier XML ? Y a t-il un Template pour le construire ? Les données qui y sont insérées proviennent d'une base de données ? Si oui, sous quel format est encodé ta base ?

    Essaye de créer un fichier vide en xml et de l'encoder en UTF-8 sans bom alors qu'il est vide puis de coller le contenu et ensuite refais le test d'affichage pour voir ce que cela donne.

    Pour finir essaye sa lors de ton test d'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $xml = simplexml_load_file('testXml.xml');
        echo html_entity_decode($xml->asXml());

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Alors la balise Mnop est belle et bien fermé c'est simplement que j'ai mal copié la fin du fichier xml.

    En ce qui concerne le fichier xml, en faite il y en a deux :

    le premier s’appelle monopolyInit.xml, il me sers a avoir une partie de depart initialisé, c'est dalleurs lui que j'essaie d'afficher, et lui ne change jamais et est bien formaté,c'est sur.

    L'autre est une copie du premier, il est modifier tout au long de la partie.
    Mais déjà sur le premiers j'ai des erreurs.

    J'ai essayé de tester les différentes méthodes que tu m'a donner aucune ne change quelques choses, je sais vraiment plus quoi essayer...

    dans tous les cas j'ai sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <parsererror>
    Erreur d'analyse XML&nbsp;: mal formé Emplacement&nbsp;: http://127.0.0.1/ProjetMonopoly/index.php?statut=newgame&amp;strat1=1&amp;strat2=2&amp;strat3=3&amp;idpartie=1 Numéro de ligne 1, Colonne 2&nbsp;:
    <sourcetext>&lt;br /&gt; -^</sourcetext>
    </parsererror>

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    up !

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Par défaut
    Salut

    Désolé j'étais occupé dernièrement...

    Regarde quel est l'encodage de ta base de donnée et donne le moi.

    Remplace la première ligne de fichier xml (le template) par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="'ISO-8859-1" ?>
    Ensuite refait ton test d'affichage avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo html_entity_decode($xml->asXml(), ENT_QUOTES, 'ISO-8859-1');
    Si cela na marche pas remet ton xml en utf-8 et refait le test d'affichage en remplacant le filtre en ISO-8859-1 par utf-8 dans la fonction html_entity_decode.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    ok merci beaucoup je verifie sa dans la semaine et je te dit !!

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    re, sa ne marche malheureusement toujours pas, l'encodage de ma bdd est : UTF-8 Unicode (utf8).

    la reponse renvoyé par firefox est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Erreur d'analyse XML : mal formé
    Emplacement : http://127.0.0.1/ProjetMonopoly/index.php?statut=newgame&strat1=1&strat2=2&strat3=3&idpartie=1
    Numéro de ligne 1, Colonne 2 :
    -^
    Dans l'onglet reseau de firebug, le sous onglet reponse est vide, et l'onglet xml =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Erreur d'analyse XML : aucun élément trouvé Emplacement : moz-nullprincipal:{a8a5d2cf-abc6-41df-ad93-94322c19bb7c} Numéro de ligne 4, Colonne 1 :
    ^
    Quand à chrome il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Erreur d'analyse XML : aucun élément trouvé Emplacement : moz-nullprincipal:{a8a5d2cf-abc6-41df-ad93-94322c19bb7c} Numéro de ligne 4, Colonne 1 :
    ^
    Difficile !!

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    up !

Discussions similaires

  1. Probleme avec le formage xml php
    Par nusdo dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 11/07/2012, 21h09
  2. [[xml]->[php]->[MySQL]] script php pour lire du xml
    Par koudjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/06/2006, 03h18
  3. [XML-PHP-DOM] Application web, gestion de la mémoire
    Par Zini dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/04/2006, 10h36
  4. XML & PHP
    Par cinc dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 04/10/2005, 17h21
  5. [Configuration] Confusion de balises XML / PHP
    Par teto dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 10/09/2005, 13h40

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