|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |||||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Bonjour à tous,
Je suis entrain de créer un agrégateur de flux XML. J'ai déjà importé environ une vingtaine de flux, mais il me reste un problème sur 3 flux. J'ai donc besoin de votre aide. Flux 1 : En fait mon script ne reconnait le flux N°1 ni comme du RSS, ni comme du XML ! Je pense que le flux est mal fait, mais je voudrai savoir s'il y a une possibilité de tout de même l'importer. Le flux est organisé comme ça : Code :
Et si je fais ce test : Le restour est FAUX Quel test dois-je faire pour avoir un retour VRAI et ensuite pouvoir récupérer les infos "title" et "description" Flux n° 2 : L'architecture de ce 2nd flux est la suivante Code :
Code :
$absolute_url=$XmlArrayVal['main']['produit']['url']; Y a t il une fonction particulière ? Flux n°3 : C'est encore plus bête, car je n'arrive même pas à récupérer ce flux ! A vrai dire je débute dans tout ce qui est programmation. Ce flux est protégé par une clé pour le récupérer. Voilà les infos que l'on m'a donné pour le récupérer : Citation:
Je suis désolé si mes explications ne sont pas exceptionnelles, mais je débute dans l'import de flux. A votre dispo. Pierrick PS : J'ai fait un seul post pour ces 3 problèmes différents, si un modérateur souhaite que je scinde en 3 posts, qu'il me dise. |
|||||
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Le problème sur le flux n°1 est résolu.
En fait, dans l'arborescence, je devais ajouter ['rss'] pour être au bon endroit dans le tableau. Par contre je n'arrive pas à résoudre les problèmes sur les 2 autres flux. Je compte donc sur votre aide. Merci |
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
pour produit c'est des attribut, donc utilise attributes
pour le REST il faut utiliser libxml_set_streams_context, pour ajouter une valeur en ton entete
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#4 | ||||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Merci bien stealth35 pour ces infos.
Par contre je ne m'en sors pas. Je me concentre pour le moment sur la fonction Attributes(), mais je ne m'en sors pas. J'ai toujours mon flux qui a cette architecture là : Code :
Pour l'instant je fais : Code :
Merci pour vos conseils. De mon coté, je regarde l'autre point. Pierrick |
||||
|
|
00
|
|
|
#5 | ||||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
J'avance sur le 2ème point, mais je suis un peu bloqué.
Voilà où j'en suis: J'ai créé ce fichier là pour importer le flux Code :
Code :
Merci d'avance pour vos conseils |
||||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
c'est pas
mais : pour le point suivant, je sais pas trop déjà load ne dois pas est appelé statiquement, l'exemple est faux, utilise simplexml au lu ide dom document, et pas besoin non plus de mettre un user-agent
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
En fait pour le premier point, le problème est plus "grave" que ça.
Voilà l'erreur que j'ai lorsque j’exécute : Code :
Fatal error: Uncaught exception 'Exception' with message 'SimpleXMLElement::__construct() expects parameter 1 to be string, array given' in /rss-importer.php:2140 Stack trace: #0 /rss-importer.php(2140): SimpleXMLElement->__construct(Array) #1 /rss-importer.php(781): RSS_Import1->getArrayValues('xml', 11, Array, Array) #2 /rss-importer.php(439): RSS_Import1->GetXmlArray('http://flux.net...', '1') #3 [internal function]: RSS_Import1->dispatch() #4 /admin.php(196): call_user_func(Array) #5 {main} thrown in rss-importer.php on line 2140 Comment faut-il utiliser simplexml ? Je ne comprends pas bien. Merci de votre aide |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
utilise simplexml_load_file
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Ah ok, c'est donc bien ce que j'avais fait, mais j'obtiens toujours le même message :
Code :
Qu'en pensez-vous ? Merci en tout cas pour votre aide, ça m'est très utile. J'aimerai vraiment pouvoir résoudre ces problèmes au plus vite ! |
||
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
c'est dans l'option header qu'il faut rajouter la clé
http://php.net/manual/fr/function.st...ext-create.php
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#11 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Nickel la récupération du flux est donc récupéré.
La solution trouvée est donc comme ça : Code :
|
||
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
c'est exactement pareil que la recuperation d'un array, tu t'es juste tromper en mettant title au lieu de titre
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#13 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Bonjour,
J'ai corrigé le problème de titre et title, c'était une erreur de copier/coller. J'ai désormais le code suivant : Code :
Code :
Fatal error: Uncaught exception 'Exception' with message 'SimpleXMLElement::__construct() expects parameter 1 to be string, array given' in /rss-feeder/rss-importer.php:2159 Stack trace: #0 /rss-feeder/rss-importer.php(2159): SimpleXMLElement->__construct(Array) #1 /rss-feeder/rss-importer.php(800): RSS_Import1->getArrayValues('xml', 11, Array, Array) #2 /rss-feeder/rss-importer.php(439): RSS_Import1->GetXmlArray('http://flux.net...', '1') #3 [internal function]: RSS_Import1->dispatch() #4 /admin.php(196): call_user_func(Array) #5 {main} thrown in /homez.131/rss-feeder/rss-importer.php on line 2159 Merci d'avance. |
||
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
SimpleXMLElement attend une chaine XML,
a quoi correspond : $XmlArrays ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#15 | ||
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Enfin, je m'en suis sorti !
J'ai repris un code trouvé sur le forum Code :
Je reviens par contre sur mon autre flux, que j'ai réussi à récupérer. Par contre, je n'arrive pas à l'exploiter. Lorsque j'affiche $doc, j'ai les infos suivantes : Code :
SimpleXMLElement Object ( [@attributes] => Array ( [version] => 1.0.0 ) [products] => SimpleXMLElement Object ( [product] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [uri] => http://www.urlsite.fr [priority] => [canBeBought] => true ) [shortName] => auvergne [title] => Titre [pictures] => SimpleXMLElement Object ( [picture] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [uri] => http://www.urlimage.jpg ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [uri] => http://www.urlimg2) ) ) )... Faut-il faire une conversion ? et Comment ? Merci pour votre aide... on touche au but ! |
||
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
t'as le même accès que pour un array
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Justement j'ai essayé :
ou mais ça ne renvoie rien. C'est vide. Comme s'il ne reconnaissait pas le format comme un array. |
|
|
00
|
|
|
#18 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#19 |
|
Membre à l'essai
![]() Inscription : décembre 2006 Messages : 169 ![]() |
Voilà le résultat avec le var_dump($doc)
Code :
object(SimpleXMLElement)#1 (2) { ["@attributes"]=> array(1) { ["version"]=> string(5) "1.0.0" } ["products"]=> object(SimpleXMLElement)#2 (1) { ["product"]=> array(4) { [0]=> object(SimpleXMLElement)#3 (13) { ["@attributes"]=> array(3) { ["uri"]=> string(47) "http://www.lesite.fr" ["priority"]=> string(0) "" ["canBeBought"]=> string(4) "true" } ["shortName"]=> string(8) "auvergne" ["title"]=> string(190) "Titre detaille" ["pictures"]=> object(SimpleXMLElement)#7 (1) { ["picture"]=> array(2) { [0]=> object(SimpleXMLElement)#16 (1) { ["@attributes"]=> array(1) { ["uri"]=> string(71) "http://www.lesite.fr/img.jpg" } } Impossible d'accéder à aucune donnée. Merci de votre aide. |
|
|
00
|
|
|
#20 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
montre ton XML de base
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com