damien-s Posté 10 Juin 2008 Partager Posté 10 Juin 2008 Bonsoir, J'ai un problême avec un script de récupération de données contenues dans un ficher .xml, dès qu'il y a des caractères spéciaux dans le .xml, il ne fonctonne plus ! Alors que çà marche bien si il n'y en a pas. Sauriez-vous comment remédier à ce problême ? <?php// On charge le document XML$doc = new DOMdocument();$doc->loadXML(file_get_contents('../../AirPlayHistory.xml'));// On get le noeud principal$doc_event = $doc->getElementsByTagName('Event')->item(0);// On fait la liste des noeuds Song$doc_event_song = $doc_event->getElementsByTagName('Song');// On listefor($i=0; $i < $doc_event_song->length; $i++) { // On get le noeud actuel $node_song_act = $doc_event_song->item($i); // On get les 2 autres sous-noeuds $node_artist_act = $node_song_act->getElementsByTagName('Artist')->item(0); $node_info_act = $node_song_act->getElementsByTagName('Info')->item(0); // On défini les variables $song['title'] = $node_song_act->getAttribute('title'); $artist['name'] = $node_artist_act->getAttribute('name'); $artist['ID'] = $node_artist_act->getAttribute('ID'); $info['StartTime'] = $node_info_act->getAttribute('StartTime'); $info['JazlerID'] = $node_info_act->getAttribute('JazlerID'); $info['PlayListerID'] = $node_info_act->getAttribute('PlayListerID'); /******************************************************************** *** Les variables ci-dessus contiennent les infos du titre ********************************************************************/ echo ' <ul> <li><strong>Artiste</strong> : ' . htmlentities($artist['name']) . ' <em>[' . htmlentities($artist['ID']) . ']</em></li> <li><strong>Titre</strong> : ' . htmlentities($song['title']) . '</li> <li>Démarré à ' . htmlentities($info['StartTime']) . '</li> </ul>';}?> Lien du xml : http://radiosworld.free.fr/AirPlayHistory.xml Page web affichant les données : http://radiosworld.free.fr/radyonne/site/xml_radyonne.php5 Merci ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 10 Juin 2008 Partager Posté 10 Juin 2008 (modifié) Hello, ton fichier XML est indiqué comme étant en ISO-8859-1 dans les entêtes HTTP, mais par défaut les parseurs XML travaillent en UTF-8. Je suppose qu'il suffit "juste" ici d'indiquer à ton parseur qu'il s'agit d'ISO. A ce que je comprends de la doc il suffit de modifier la propriété $encoding de ton objet ; mais je n'ai pas essayé. (en fait ça se fait aussi via le constructeur, ce qui est quand même plus propre : http://fr.php.net/manual/en/domdocument.construct.php ) Modifié 10 Juin 2008 par Kioob Lien vers le commentaire Partager sur d’autres sites More sharing options...
damien-s Posté 10 Juin 2008 Auteur Partager Posté 10 Juin 2008 (modifié) Merci, Donc ceci: $doc = new DOMdocument('1.0', 'iso-8859-1'); ? Je test çà! EDIT : Pas l'air d'être çà, j'ai toujours mon erreur : http://radiosworld.free.fr/radyonne/site/xml_radyonne.php5 Modifié 10 Juin 2008 par damien-s Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant