Flux XML en UTF8 avec les balises CDATA

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par max6, 21 Mars 2007.

Tags:
  1. max6
    max6 WRInaute discret
    Inscrit:
    18 Mai 2003
    Messages:
    146
    J'aime reçus:
    0
    Bonjour

    Je rencontre un problème avec un flux XML qui se décompose comme ceci :


    Code:
    <hotel>
    		<hotel_id>11601</hotel_id>
    		<hotel_nom><![CDATA[FIRST HOTEL AALBORG]]></hotel_nom>
    		<cp>21000</cp>
    		<departement_id>0</departement_id>
    		<departement></departement>
    		<ville_id>1</ville_id>
    		<ville>Aalborg</ville>
    		<pays>Danemark</pays>
    		<pays_id>1</pays_id>
    		<description><![CDATA[L'h&ocirc;tel First d'Aalborg se trouve &agrave; seulement 7 km de l'a&eacute;roport, &agrave; 1 km de la gare et a une distance de marche de magasins, des attractions touristiques et des restaurants. Il compte 155 chambres &eacute;quip&eacute;es de salles de bains priv&eacute;es, et 12 suites avec ]]></description>
    		<etoiles>4</etoiles>
    		<chambres>0</chambres>
    		<image>http://www.hotelclub.net/common/imagegallery/HotelImage.aspx?hid=10844</image>
    		<chaine_id>0</chaine_id>
    		<chaine></chaine>
    		<chaine_image>http://img.webmastravel.net/hotel/0.gif</chaine_image>
    		<voyagistes>
    			<offre>
    				<voyagiste_id>6</voyagiste_id>
    				<voyagiste>HotelClub</voyagiste>
    				<voyagiste_image>http://img.webmastravel.net/voyagistes/6.gif</voyagiste_image>
    				<url>http://mb.webmastravel.net/hgo2.php?a=11601&b=6&c=1047</url>
    				<prix>0</prix>
    			</offre>
    		</voyagistes>
    	</hotel>
    

    Je le lis comme cela :


    Code:
    $bibliotheque = simplexml_load_file('wmt_hotels.xml'); 
    foreach ($bibliotheque->hotel as $hotel) 
    { 
    $hotel_id = utf8_decode($hotel->hotel_id);
    $hotel_nom = utf8_decode($hotel->hotel_nom);
    $cp = utf8_decode($hotel->cp);
    $departement = utf8_decode($hotel->departement);
    $ville = utf8_decode($hotel->ville);
    $pays = utf8_decode($hotel->pays);
    $description = utf8_decode($hotel->description);
    $etoiles = utf8_decode($hotel->etoiles);
    $chambres = utf8_decode($hotel->chambres);
    $image = utf8_decode($hotel->image);
    $chaine = utf8_decode($hotel->chaine);
    
    
    $hotel_id = mysql_real_escape_string($hotel_id);
    $hotel_nom = mysql_real_escape_string($hotel_nom);
    $cp = mysql_real_escape_string($cp);
    $departement = mysql_real_escape_string($departement);
    $ville = mysql_real_escape_string($ville);
    $pays = mysql_real_escape_string($pays);
    $description = mysql_real_escape_string($description);
    $etoiles = mysql_real_escape_string($etoiles);
    $chambres = mysql_real_escape_string($chambres);
    $image = mysql_real_escape_string($image);
    $chaine = mysql_real_escape_string($chaine);
    
    .....
    

    Mais voila lors de l'insertion dans mysql (sous wamp) le problème des accents n'est pas réglé du tout .
    Du moins ca fonctionne tant que les éléments du flux ne sont pas dans les balises CDATA .

    J'ai tt essayé mais rien a faire , c'est comme si UTF8_decode etait ignoré .
     
  2. Tilt
    Tilt WRInaute impliqué
    Inscrit:
    26 Mars 2005
    Messages:
    752
    J'aime reçus:
    0
    Dans ton exemple, les accents sont html encodés. A ta place au lieu de utf8_decode, je ferais html_entity_decode,
    d'autant que cette fonction permet de spécifier un encodage:
    ex: html_entity_decode($str,ENT_QUOTES,"ISO-8859-1");
     
  3. max6
    max6 WRInaute discret
    Inscrit:
    18 Mai 2003
    Messages:
    146
    J'aime reçus:
    0
    Eh bien merci mais ca ne fonctionne pas malgré tout .

    J'ai fais un test , j'ai crée un fichier vierge et j'ai mis dedans :

    Code:
    $a = "L'h&ocirc;tel";
    echo html_entity_decode($a);
    Affiche L'hôtel
    
    Tout va bien donc .

    Mais quand j'intégre ca a mon code XML comme ceci :

    Code:
    $hotel_id = html_entity_decode($hotel_id,ENT_QUOTES,"ISO-8859-1");
    $hotel_nom = html_entity_decode($hotel_nom,ENT_QUOTES,"ISO-8859-1");
    $cp = html_entity_decode($cp,ENT_QUOTES,"ISO-8859-1");
    $departement = html_entity_decode($departement,ENT_QUOTES,"ISO-8859-1");
    $ville = html_entity_decode($ville,ENT_QUOTES,"ISO-8859-1");
    $pays = html_entity_decode($pays,ENT_QUOTES,"ISO-8859-1");
    $description = html_entity_decode($description,ENT_QUOTES,"ISO-8859-1");
    $etoiles = html_entity_decode($etoiles,ENT_QUOTES,"ISO-8859-1");
    $chambres = html_entity_decode($chambres,ENT_QUOTES,"ISO-8859-1");
    $image = html_entity_decode($image,ENT_QUOTES,"ISO-8859-1");
    $chaine = html_entity_decode($chaine,ENT_QUOTES,"ISO-8859-1");
    
    Et bien ca ne change rien , seul les champs qui ne sont pas dans CDATA sont traités , Les champs contenu dans CDATA ignore cette fonction sauf
    mysql_real_escape_string qui est utilisé .

    J'ai du mal a voir ce qui cloche
     
  4. max6
    max6 WRInaute discret
    Inscrit:
    18 Mai 2003
    Messages:
    146
    J'aime reçus:
    0
    Alors en fait je viens de remarquer que si j'affiche les enresitrement les caractéres sont bien convertit mais pas quand j'insère dans mysql sous wamp

    Etrange
     
Chargement...
Similar Threads - Flux XML UTF8 Forum Date
Problème de fou avec parsage de flux xml traded*** et encodage utf8 en php Développement d'un site Web ou d'une appli mobile 16 Septembre 2009
Comment déterminer si un flux XML est codé en UTF8 Administration d'un site Web 3 Avril 2005
tarifs flux xml programme TV Sport Développement d'un site Web ou d'une appli mobile 14 Novembre 2021
Comment intégrer un flux XML affiliation sur mon site WordPress ? Monétisation d'un site web 3 Octobre 2018
[résolu] recupération de flux xml et erreur encodage des caractères Développement d'un site Web ou d'une appli mobile 27 Janvier 2016
intégrer un flux XML e-commerce 26 Avril 2015
Comment utiliser un flux XML? Développement d'un site Web ou d'une appli mobile 29 Avril 2014
Flux XML affiliation et duplicate content Débuter en référencement 31 Octobre 2012
Explications flux xml, catalogue produit Zanox Monétisation d'un site web 23 Septembre 2011
[Magento] Comment créer un flux XML de produits pour Google Shopping e-commerce 22 Février 2011
Parser un flux XML en PHP pour récupérer une valeur Développement d'un site Web ou d'une appli mobile 10 Février 2011
Probleme fichiers xml et flux rss s'affichent bizarrement Développement d'un site Web ou d'une appli mobile 16 Janvier 2011
Flux XML / RSS Développement d'un site Web ou d'une appli mobile 16 Novembre 2010
Questions concernant le parsing de flux XML en PHP Développement d'un site Web ou d'une appli mobile 16 Novembre 2010
Flux XML et caractères spéciaux Développement d'un site Web ou d'une appli mobile 23 Avril 2010
Flux XML et référencement Crawl et indexation Google, sitemaps 17 Mars 2010
[Résolu] afficher image provenant de flux xml Développement d'un site Web ou d'une appli mobile 20 Février 2010
Contrôle de présence d'une balise dans un flux XML Développement d'un site Web ou d'une appli mobile 24 Octobre 2009
Tracking sur un flux XML parsé Développement d'un site Web ou d'une appli mobile 11 Mai 2009
Flux xml et image Débuter en référencement 9 Avril 2009