Je tente de télécharger une page HTML et de l'analyser en utilisant XMLHttpRequest (sur le navigateur Safari le plus récent). Malheureusement, je ne peux pas le faire fonctionner!Analyse du code HTML avec XPath/XMLHttpRequest
var url = "http://google.com";
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4){
response = xmlhttp.responseText;
var doc = new DOMParser().parseFromString(response, "text/xml");
console.log(doc);
var nodes = document.evaluate("//a/text()",doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
console.log(nodes);
console.log(nodes.snapshotLength);
for(var i =0; i<nodes.snapshotLength; i++){
thisElement = nodes.snapshotItem(i);
console.log(thisElement.nodeName);
}
}
};
xmlhttp.send(null);
Le texte est téléchargé avec succès (réponse contient le code HTML valide), et est analysé dans un arbre correctement (doc représente un DOM valide pour la page). Toutefois, nodes.snapshotLength vaut 0, malgré le fait que la requête est valide et devrait avoir des résultats. Des idées sur ce qui ne va pas?
Êtes-vous capable d'accéder via DOM "normal"? Aussi, vous pouvez directement utiliser 'xmlhttp.responseXML'. – poke
Vous pouvez trouver réponse ici http://stackoverflow.com/questions/40729785/parsing-xmlhttprequest-result-using-xpath/40750779#40750779 – Leax