J'essaie de charger les résultats de recherche XML personnalisés de Google dans une page PHP, puis de manipuler le XML en utilisant JQuery. Je comprends que je ne peux pas utiliser javascript pour saisir le fichier XML car il est sur un domaine externe, mais puis-je utiliser PHP pour récupérer le XML du serveur, puis le mettre à la disposition de JQuery en tant que fichier XML ou autre Structure DOM, donc je peux ensuite traverser ce XML en utilisant, par exemple:Puis-je utiliser PHP pour récupérer un fichier XML externe à utiliser par JQuery?
$(resultXml).find("R").each(function(){
$("ul.results").append("<li>"+$(this).find("S")+"</li>");
});
où resultXml est l'objet XML.
L'URL XML est quelque chose comme ceci:
http://www.google.com/cse?cx=XXXXXXX&client=google-xxxx&output=xml_no_dtd&q=$keyword
Lorsque le mot-clé $ est passé à la page PHP dans la chaîne GET. Je suis bon avec les choses frontales mais moins avec le côté serveur (ce qui explique pourquoi je ne suis pas en train d'analyser le XML en PHP) et je suis perplexe quant à la façon dont j'allais m'emparer du XML en PHP et convertissant cela en un formulaire JQuery peut analyser (en utilisant json_encode peut-être?). J'ai lu sur plusieurs façons d'inclure un fichier externe en PHP en utilisant des fonctions comme fopen mais il semble y avoir beaucoup de mises en garde sur les proxies et les autorisations.
Merci.
J'ai utilisé ceci et ai l'objet json étant analysé par le JQuery ok mais il ne fonctionne pas dans IE. J'utilise le code suivant pour examiner les données: $ (gXml) .find ("R"). Each (function() { resultUrl = $ (this) .find ("U"). Text(); $ ("ul.results"). Append ("
vous pouvez le garder en XML si vous le souhaitez, il suffit de supprimer la partie json_encode et ensuite vous pouvez analyser le xml avec jQuery (exemple décent ici: http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery) . Le code pour analyser le json devrait fonctionner correctement dans IE8 si cela fonctionne dans d'autres navigateurs. Peut-être vérifier les erreurs dans votre balisage html, si vous utilisez xhtml strict doctype et il manque une balise de fermeture pour votre ul par exemple IE8 pourrait choisir de ne pas l'afficher – mbehan
Merci pour la clarification. J'ai passé mon code cent fois et je n'ai rien trouvé de mal. Heureusement (comme je me suis arraché les cheveux) je suis tombé sur ce bug jquery - http://dev.jquery.com/ticket/3143 - qui nécessite que l'objet soit passé par un constructeur avant qu'IE6/7 le reconnaisse comme tel. Maintenant, cela fonctionne parfaitement! Cheers. – Marcus