javascript - 是否可以使用 xPath 从脚本中提取数据?

标签 javascript xpath

我正在尝试从脚本中提取日期(2018-11-20)。是否可以从脚本中提取数据?

<script>var dataLayer = [{"author":["David N. Haass"],"postdate_dl":"2018-11-20","region":["Canada"],"content type":"Article","pub type":"article","user category":"anonymous","nodeid_dl":"197954"}];</script>

到目前为止我已经这样做了,但它没有返回任何结果:

//script[@dataLayer='postdate_dl']

如有任何帮助,我们将不胜感激。

最佳答案

XPath 不理解 JavaScript 或 JSON。使用 XPath 选择器可以获得的最接近的是文本节点。可以用XPath字符串函数剪切文本节点内容;根据您的工具,它可能包含也可能不包含正则表达式匹配,但即使这样也不足以正确解析 JSON。

根据您到底在做什么(以及您对脚本内容的信心程度),您可以简单地评估脚本并访问变量,或者自己剪切字符串以查找 JSON,然后 JSON.parse 它,甚至可以硬核构建脚本的 AST,然后以受控方式对其进行评估(例如使用 Esprima 和 Kudzu)。

关于javascript - 是否可以使用 xPath 从脚本中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57507792/

相关文章:

javascript - evt.preventDefault() 的反义词是什么?

javascript - 在javascript中读取JSON数据

xml - 使用 xpath 选择顶部节点

具有多个谓词语句的 Xpath

internet-explorer - Internet Explorer 中的 DOM 级别 3 XPath

javascript - 当失去对 bootstrap-modal 的关注时触发事件

javascript - React、Axios 问题 : Response for preflight has invalid HTTP status code 401

javascript - 未找到文件 - 文件系统 API、Javascript

c# - SwitchTo IFrame,其中 XPath 包含 id 的一部分

c# - 如何在 .Net 上使用 Saxon 计算 Xpath 表达式