J'utilise la console YQL pour exécuter la requête suivante:YQL choisir parmi xml
select *
from xml
where url="http://www.inova.org/patient-and-visitor-information/facilities/inova-fair-oaks-hospital/plan-your-visit/index.jsp"
and itemPath="html.body.form"
Aucun résultat sont retournés. J'ai également essayé d'employer xpath
et css
juste pour des grimaces, mais je n'obtiens aucun résultat. Si je supprime le deuxième filtre, j'obtiens le balisage de la page. Est-ce que je fais quelque chose de mal? C'est une page XHTML (selon le doctype), donc select * from html
ne fonctionnait pas.
Merci.
MISE À JOUR
J'ai mis à jour ma syntaxe de requête à une requête qui semble au moins les résultats de retour, mais je dois plonger plus profondément. Ce que je dois vraiment arriver à quelque chose comme ceci:
select *
from xml
where url="http://www.inova.org/patient-and-visitor-information/facilities/inova-fair-oaks-hospital/plan-your-visit/index.jsp"
and itemPath="html.body.form.div#wrapper.div#page.div#content"
Malheureusement, cette syntaxe pour accéder à un div id spécifique ne fonctionne pas et je n'ai trouvé aucune façon d'atteindre que div cible (celui avec id="content"
) qui renvoie des résultats du tout.
MISE À JOUR
J'ai trébuché, et je ne veux trébuché sur une requête YQL qui fonctionne (pour le moment, nous allons le mépris à quel point fragile est):
select *
from xml
where url="http://www.inova.org/patient-and-visitor-information/facilities/inova-fair-oaks-hospital/plan-your-visit/index.jsp"
and itemPath="html.body.form.div.1.div.4.div.2"
Toutes les suggestions pour un moyen de le rendre moins fragile (et idéalement pare-balles) seraient vraiment, vraiment appréciées.
Vous avez raison . J'ai traversé beaucoup, beaucoup d'itérations de syntaxe et j'ai collé un qui n'était pas exactement correct. Je l'ai corrigé pour celui qui fonctionne (lire: renvoie des résultats), mais j'ai besoin de plonger quelques couches plus profondes. J'ai mis à jour ma question en conséquence. –
Oh, nm. Je viens de relire votre réponse et cette fois, il a effectivement cliqué. Je vais regarder la page, mais je pense que YQL nettoie ce truc, ce qui pourrait expliquer pourquoi la requête modifiée ci-dessus fonctionne au moins à un certain niveau. –
C'est essentiellement la façon de traverser la réponse JSON. Vous auriez toujours besoin d'un codage externe pour obtenir tous les nœuds h1. Même avec la nouvelle façon, le navigateur produit toujours des erreurs d'analyse XML. – RVCA18