SimpleXML et cdata

SimpleXML et cdata - PHP - Programmation

Marsh Posté le 13-09-2011 à 00:24:19    

Bonjour,
 
Desole pour l'absence d'accents - clavier pas francais !
 
J'essaie d'extraire avec PHP des donnees d'un flux XML dont certains nodes sont du CDATA (en l'occurence "eventtype" ci-dessous est <eventtype><![CDATA[Concerts]]></eventtype> ). Apres m'etre apercu que simpleXML ne le lisait pas, j'ai essaye de regler le probleme comme explique sur tous les sites renvoyes par google - en ajoutant l'argument LIBXML_NOCDATA:
 
$sxml_results = simplexml_load_file("myfile.xml",'SimpleXMLElement',LIBXML_NOCDATA);
print_r($sxml_results); // Cela me montre bien la valeur d'eventtype
 
foreach ($sxml_results->product AS $product)
{
 echo $product->eventtype; //Ici eventtype n'est pas lu et cela me renvoie ' '
}
 
Cela me rend fou... Merci d'avance !
Anak

Reply

Marsh Posté le 13-09-2011 à 00:24:19   

Reply

Marsh Posté le 13-09-2011 à 11:18:28    

Je n'ai jamais eu de problèmes avec SimpleXML et les CDATA.
Est-ce que tu peux nous fournir le fichier que tu essayes de lire ou il s'agit de données confidentielles ?


---------------
Mon Feedback !
Reply

Marsh Posté le 13-09-2011 à 14:26:52    

C'est un flux tout bete, qui vient d'un programme d'affiliation : http://promo.feed.cleafs.com/xml/u [...] UBq/12692/
La reponse qui se trouve sur un grand nombre de sites est la suivante : http://blog.evandavey.com/2008/04/ [...] n-php.html
Mais ca ne marche que pour l'affichage via print_r() (ca m'affiche "Concerts" pour eventtype au lieu de rien du tout), pas quand je cherche a recuperer les valeurs...

Reply

Marsh Posté le 13-09-2011 à 16:35:09    

En fait c'est tout bête, c'est juste que tu as oublié un noeud dans ta syntaxe echo.
 

Code :
  1. echo $product->additional->eventtype;


 
Tu peux donc enlever les deux derniers paramètres que tu donnes à ta fonction simplexml_load_file car ils ne servent à rien, ça fonctionne très bien sans.


---------------
Mon Feedback !
Reply

Marsh Posté le 14-09-2011 à 01:12:58    

En effet...  :sweat: merci d'avoir pointe l'erreur !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed