tom-tom Posté 14 Octobre 2008 Posté 14 Octobre 2008 Bonjour à tous, Pour réaliser un "tri" dans un code XML, on peut utiliser la méthode xpath : <?php$string = <<<XML<a> <b> <c>text</c> <c>stuff</c> </b> <d> <c>code</c> </d></a>XML;$xml = new SimpleXMLElement($string);/* On cherche <a><b><c> */$result = $xml->xpath('/a/b/c');while(list( , $node) = each($result)) { echo '/a/b/c: ',$node,"\n";}/* Les chemins relatifs fonctionnent aussi... */$result = $xml->xpath('b/c');while(list( , $node) = each($result)) { echo 'b/c: ',$node,"\n";}?> J'aimerais, dans ce code, au lieu de mettre directement la portion de code XML, qu'on l'a récupère à partir d'un fichier distant (URL). J'ai essayé un $string = fopen ("http://www.domaine.com/fichier.xml"); mais rien de bien de convaincant. :/ Quelqu'un peut-il m'éclairer ? Merci.
captain_torche Posté 14 Octobre 2008 Posté 14 Octobre 2008 fopen ne fait qu'ouvrir une connexion vers un fichier. Il faudrait faire un fread ensuite pour en récupérer le contenu. Sinon, tu peux essayer un file_get_contents, mais c'est possible que selon ta configuration, ça ne fonctionne pas.
tom-tom Posté 14 Octobre 2008 Auteur Posté 14 Octobre 2008 (modifié) Merci pour cette réponse rapide et ces précieuses informations Dans mon cas, est-ce que ce code serait correct ? <?php$string = file_get_contents("http://www.carbeo.com/rss/moy_dpt.xml");$xml = new SimpleXMLElement($string);/* On cherche <item><title> */$result = $xml->xpath('item/title');while(list( , $node) = each($result)) { echo 'item/title :',$node,"\n";}?> Modifié 14 Octobre 2008 par tom-tom
tom-tom Posté 14 Octobre 2008 Auteur Posté 14 Octobre 2008 Essaye, tu verras bien J'avais bien essayé, mais ça marchait pas. J'ai peur que ça vienne de mon code, c'est pour cela que je voulais savoir s'il avait l'air correct. À moins que ce soit mon hébergeur... :/
captain_torche Posté 14 Octobre 2008 Posté 14 Octobre 2008 Si ça ne marche pas, tu dois avoir un message d'erreur, non ?
LeMulotNocturne Posté 15 Octobre 2008 Posté 15 Octobre 2008 1) vérifie la valeur de $string en faisant un bête echo $string; 2) si $string est vide, cela provient probablement du fait que ton PHP interdit l'ouverture de flux distants (notamment http). Cela se règle dans ton fichier de conf PHP (quelle plate-forme au fait ?)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant