2010-02-06 3 views

Répondre

4

Utilisez GM_xmlhttpRequest pour la demande, et createContextualFragment pour l'analyse syntaxique HTML. Voir Best Addons for Greasemonkey pour un exemple utilisant createContextualFragment. Pour l'analyse de XML valide, vous pouvez simplement utiliser DOMParser.parseFromString.

EDIT: Voici un exemple très simple mais complet pour montrer comment tout va ensemble:

// ==UserScript== 
// @name   Parse HTML demo 
// @namespace 
// @include  * 
// ==/UserScript== 

GM_xmlhttpRequest({ 
    method: 'GET', 
    url: 'http://www.google.com', 
    onload: function(resp){ 
    var range = document.createRange(); 
    range.setStartAfter(document.body); 
    var xhr_frag = range.createContextualFragment(resp.responseText); 
    var xhr_doc = document.implementation.createDocument(null, 'html', null); 
    xhr_doc.adoptNode(xhr_frag); 
    xhr_doc.documentElement.appendChild(xhr_frag); 
    var node = xhr_doc.evaluate("//span//b[@class='gb1']", xhr_doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 
    GM_log("node.localName: " + node.localName); 
    GM_log("node.textContent: " + node.textContent); 
    } 
}); 
0

Si vous travaillez avec xml ou bien écrit xhtml, vous pouvez le faire comme suit:

// XMLDocument 
var doc = new DOMParser().parseFromString(xhr.responseText, "text/xml"); 
Dans le cas contraire

:

// HTMLDocument 
var doc = document.implementation.createHTMLDocument(""); 
doc.documentElement.innerHTML = xhr.responseText; 

Une fois que vous avez le document, vous pouvez utiliser quoi que ce soit juste comme un document normal.

Questions connexes