1

我正在尝试在 Safari Web 检查器中使用 xpath

我正在使用这个本地 XML:

<searchable_index>
    <item>John</item>
    <item>Paul</item>
    <item>George</item>
    <item>Ringo</item>
</searchable_index>

我将其保存为本地文件,打开 Chrome 并执行以下操作:

$x('//项目')

它可以正常工作,返回:

在此处输入图像描述

但是当我尝试在 Safari 中做同样的事情时,它返回一个空数组

在此处输入图像描述

任何线索为什么会发生这种情况?它让我们发疯

我在优胜美地使用 Safari 8.0.3 (10600.3.18)

提前致谢。

4

1 回答 1

1

出于某种原因,如果选择 Safari 8 作为 WebKit 中的用户代理,并且如果输入文件有*.xml扩展名,那么在控制台中键入的 XPath 表达式将不会搜索源文档,而是在其上生成的 HTML,说

此 XML 文件似乎没有任何与之关联的样式信息。文档树如下所示。

并且该 HTML 文档中没有item元素。从理论上讲,您可以将视图从“DOM 树”更改为“源代码”,但如果用户代理是 Safari 8,这将不起作用。此外,对于允许切换到源代码的用户代理,路径表达式仍然不不行。

但是,将文件扩展名更改为*.html将起作用。然后,再试一次,Xpath 表达式将找到item元素。

如果您无法更改文件扩展名,我认为 Safari Web Inspector 无法找到这些元素。然后,您将不得不依赖另一个工具来根据 XML 评估 XPath 表达式,无论您的编程语言或框架中是否可用。

于 2015-02-03T16:51:57.343 回答