首页 > 解决方案 > importXML 中的 xpath://comment() 与 //*/comment()

问题描述

为什么我在 importXML 中使用 xpath 得到不同的结果

//comment() vs //*/comment()

问题可能很愚蠢,但我根本没有得到任何结果(#N/A)//comment()

这可能是一般情况下的问题:

//node vs //*/node

标签: xpathgoogle-sheets

解决方案


由于没有其他人想出一个好的答案,我添加了我的:

怀疑问题源于相关页面的 AJAX 特性IMPORTXML()以及Google 表格上的方法的运行方式。

使用 XPath 查询文档根节点和选择节点/给了我们一种直觉。这样做会返回一个充满 JavaScript 的单元格,但不会返回页面的实际 (HTML) 源代码。使用//导致描述的加载错误。看起来它只搜索包含 JS 的这个单元格 - 因此无法使用 XPath 查询找到评论(或任何其他子节点)//comment()

但是,如果我们查询//*电子表格上的大约 100 多个单元格,其中填充了各种页面元素和源代码片段(这可能是由加载到页面中的单独源文件中的某些 EOL 或换行符引起的)。因此,通过这种方式加载页面的所有部分,包括评论。因此,现在我们可以使用//*/comment()您发现的方式加载它们(也/*//comment()适用于我)。

这种行为没有意义(当然也不符合 XPath 规范),但它似乎是 GSIMPORTXML方法处理问题的方式。


推荐阅读