突出显示来自javascript: document的html.Evaluate返回空节点

Highlight html from javascript : document.evaluate returns null node

本文关键字:html Evaluate 返回 节点 document 显示 javascript      更新时间:2023-09-26

在我的index.html中有一个div,将填充从ajax请求返回到另一个网页的一些html内容。我需要突出显示由xpath确定的加载的html内容的某些特定部分。使用这里找到的解决方案中的代码,它返回一个空节点。显然,当我尝试使用引用ajax请求代码的xpath时,如下所示:

var node = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

它返回一个空节点。

我正在寻找一些有用的东西,以取代"文档"内的函数获得一个非空节点引用的代码从ajax,而不是从index.html,仍然包含空div的目的。

我需要填充的div是这样的:'div id=" mainarecontent "/div',在这里你可以找到我想要插入(https://ideone.com/bseVSF),我使用的路径是/table/tr/td/table[1]/tr/td[2]/h3[2]/text()document变量是index.html,它调用js脚本。

您写的:

/table/tr/td/table[1]/tr/td[2]/h3[2]/text().

如果我在oXygen(具有XPath/XSLT等支持的XML编辑器)中打开您的文件,并且我使其有效(您引用的文件不完整/损坏),那么您的给定XPath选择文本节点"The Architecture and Datasets of Docear's Research Paper Recommender System" (sic)。

你写的

:

我需要填充的div是:'div id=" mainarecontent "/div

我在你的XPath中没有看到任何div,也没有在你的源HTML中看到任何id mainAreaContent的东西,所以如果你正在搜索它,你得到null是正确的:它不在那里。

关于XPath表达式

您展示的XPath从根目录开始。如果根目录不是<table>,而是<html>,则应该将其更改为包含到table元素的路径。您展示的(不完整的)文档从<table>开始,但我假设它是HTML页面的一部分。也许你的select表达式应该像/html/body/div/p/table...一样开始,但是我不知道,你没有显示那部分。