我做了一個Firefox擴展,它使用xmlhttprequest
加載一個網頁。如何使用Firefox內部的XPath提取網站信息?
我的擴展有它自己的窗口,與主Firefox一起打開。
我的擴展的想法是加載一個網頁在內存中,修改它,並在firefox中新打開的標籤發佈。
該網頁有一個ID爲「Content」的div。這就是我想修改的div。我一直在用greaseMonkey腳本使用XPath,所以我想在擴展中使用它,但是,我遇到了問題。它似乎不工作,因爲我想要的。我總是得到0的結果。
var pageContents = result.responseText; //webpage which was loaded via xmlhttprequest
var localDiv = document.createElement("div"); //div to keep webpage data
localDiv.innerHTML = pageContents;
// trying to evaluate and get the div i need
var rList = document.evaluate('//div[@id="content"]', localDiv, null XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
結果總是0,正如我所說的。現在我創建了本地div來存儲網站數據,因爲我無法使用XPath解析文本。而document
在這種情況下是我的擴展文件/窗口XUL
。
我確實希望它能夠工作,但我錯了。
我知道如何使用string.indexOf(str)
然後slice(..)
來提取div。但是,這很慢,不方便,因爲我需要修改內容。更改背景,這個div內的許多形式的邊界。對於這項工作,我還沒有看到比評估XPath獲得所有需要的節點更好的方法。
所以主要問題是,如何使用XPath解析加載的網頁在Firefox擴展?
謝謝
謝謝。我在新標籤中加載了頁面並獲得了它的文檔對象,然後用它執行了所有XPath和修改,並且它運行良好。 – user1651105 2010-02-09 14:29:30