gpt4 book ai didi

javascript - 在 Chrome 中评估 xpath 表达式

转载 作者:行者123 更新时间:2023-11-29 17:25:09 27 4
gpt4 key购买 nike

我正在尝试从此页面 http://www.money.pl/pieniadze/ 的表格中提取几行使用 xpath 表达式和 javascript。我可以将整个页面显示为弹出窗口,但我无法使用 document.evaluate(); 评估 xpath 表达式;尝试使用 XPathResultType 但没有结果。有人可以帮忙吗?

这是我的背景页面:

<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>

最佳答案

您不能在纯字符串上使用 XPath。您必须先将字符串转换为文档。例如,使用 DOMParser。目前的浏览器还不支持 text/html。要使其正常工作,您必须包含指定的代码 at this answer :

var bgWholePage = new DOMParser().parseFromString(bg.wholePage, 'text/html');
document.evaluate( EurPlnPath, bgWholePage, ...

如果要在后台页面解析文档,使用bg.document.evaluate代替document.evaluate:

var oneTopic = bg.document.evaluate( EurPlnPath, bg.wholePage, null, XPathResult.ANY_TYPE, null)

关于javascript - 在 Chrome 中评估 xpath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com