提问人:Andrea Moro 提问时间:10/26/2023 更新时间:10/31/2023 访问量:47
XPath 选择器,用于在 iframe 中获取元标记 X
XPath selector to get a meta tag X within an iframe
问:
我有一些挑战,我无法弄清楚。
我有一个 HTML 文档,其中嵌套的 iframe 托管了另一组元标记。我想通过 XPath 查询联系他们,但是在测试类似的东西时,没有匹配项。
到目前为止,我已经尝试了多种组合,但没有成功。//iframe[.//meta[@name='robots']]
我的理解是,iframe 内容通常在呈现的视图中是扁平化的,因此它应该是完全可遍历的。
事实上,一个简单的工作就可以了。.//meta[@name='robots']
询问的原因是拦截网页中的所有元标记,同时排除 iFrame 中包含的元标记。
答:
0赞
Siebe Jongebloed
10/27/2023
#1
它像 iframe 一样接缝,因为 Xpath 无法识别元素。
相反,您可以尝试所有不在 iframe 中的元:
//meta[not(ancestor::body)
评论
0赞
Andrea Moro
10/27/2023
它仍然会联系 iframe 中的元和那些不是元的元
0赞
Andrea Moro
10/31/2023
#2
我不确定也不清楚为什么这比它应该的相反,但最终下面的 XPATH 可以解决问题。
//meta[@name='robots'][(/descendant-or-self::iframe)]
使用上一条评论中作为示例给出的页面,编辑渲染的 HTML 以在上部添加测试元机器人,并使用上面的 XPATH 仅返回该单个实例。
评论
.//meta[@name='robots']
.//meta[@name='robots']