Webmaster Hub: XML et xpath : demande de précisions - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

XML et xpath : demande de précisions Noter : -----

#1 L'utilisateur est hors-ligne   tom-tom 

  • Groupe : Membre
  • Messages : 8
  • Inscrit(e) : 13-octobre 04

  Posté 14 octobre 2008 - 09:41

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.
0

#2 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 14 octobre 2008 - 09:45

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.
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#3 L'utilisateur est hors-ligne   tom-tom 

  • Groupe : Membre
  • Messages : 8
  • Inscrit(e) : 13-octobre 04

Posté 14 octobre 2008 - 11:07

Merci pour cette réponse rapide et ces précieuses informations :D

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";
}

?>

Ce message a été modifié par tom-tom - 14 octobre 2008 - 11:08.

0

#4 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 14 octobre 2008 - 11:12

Essaye, tu verras bien ;)
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#5 L'utilisateur est hors-ligne   tom-tom 

  • Groupe : Membre
  • Messages : 8
  • Inscrit(e) : 13-octobre 04

Posté 14 octobre 2008 - 13:06

Voir le messagecaptain_torche, le mardi 14 octobre 2008 à 12:12, dit :

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. :D À moins que ce soit mon hébergeur... :/
0

#6 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 14 octobre 2008 - 13:42

Si ça ne marche pas, tu dois avoir un message d'erreur, non ?
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#7 L'utilisateur est hors-ligne   LeMulotNocturne 

  • Groupe : Membre
  • Messages : 6
  • Inscrit(e) : 05-mars 08

Posté 15 octobre 2008 - 13:41

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 ?)
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)