我想從這個頁面中的表格中提取幾行http://www.money.pl/pieniadze/ 使用xpath表達式和javascript。 我可以將整個頁面顯示爲彈出式窗口,但我無法使用document.evaluate()評估xpath表達式。 已嘗試玩XPathResultType但沒有結果。 任何人都可以幫忙嗎?評估Chrome中的xpath表達式
這裏是我的背景頁:
<html><head><script>
...
var wholePage;
setInterval(fetch, 20000);
function fetch()
{
req = new XMLHttpRequest();
var url = "http://www.money.pl/pieniadze/";
req.open("GET", url);
req.onload = process;
req.send();
}
function process()
{
wholePage = req.responseText;
}
</script></head></html>
,這裏是彈出頁面:
<html><head><script>
...
onload = setTimeout(extract, 0);
function extract()
{
chrome.browserAction.setBadgeText({text: ''});
var bg = chrome.extension.getBackgroundPage();
var EurPlnPath = "//tr[@id='tabr_eurpln']";
var tempDiv = document.getElementById('current');
tempDiv.innerHTML = bg.wholePage;
var oneTopic = document.evaluate(EurPlnPath, bg.wholePage, null, XPathResult.ANY_TYPE, null)
var res = oneTopic.iterateNext();
}
</script></head>
<body>
<div id="current">
</div>
</body>
</html>
不要使用'querySelectorAll',但是'querySelector'。 ID必須是唯一的,所以你可以確定選擇只返回一個元素。 'querySelector'比XPath更快[http://jsperf.com/getelementbyid-vs-queryselector/5],所以這個答案包含了一個很好的建議。儘管如此,這種方法無法使用純字符串,請參閱我對該部分的回答。 – 2012-02-25 18:46:08
Rob是正確的,如果這幾行有一個屬性,可以定義選擇它們,你最好使用querySelectorAll這樣的屬性。那麼您將立即獲得這些元素的列表。 – 2012-02-25 18:56:34