WhatWG-Proposal-将XPath更新到(至少)v2.0

2020-10-13 22:47:25

虽然最新的推荐是v3.1,但大多数与XPath相关的问题似乎都没有考虑正则表达式,正则表达式是在v2.0中引入的,这是近10年前的一项建议。

XPath语言在2007年被流行的框架(如Dojo、Prototype或Mootools)广泛采用,它是一种在所有轴上查询和爬行DOM的极其强大的工具,因此优于CSS,并且能够释放建议的选择器,例如:has(...)。即使在其版本1中也是如此。

但这只是触及了XPath所能做的操作的皮毛,与通过CSS进行查询相反,通过JS检查周围的DOM节点,检查结果是有效的(即if(Child.cloest(';tainer';)),再加上无法将文本节点甚至注释作为目标。

至少提供与当前XPath 1.0(让我们称其为1.1)相匹配的方法(RegExp,flag),或者至少提供这个旧的黄金标准的v.2来爬行任何DOM树,就好像它仍然在更新并且对后端爬虫很有用一样,但是它不清楚为什么一等公民JS不应该从它的潜力中获益,它比CSS选择器优越得多,而且不容易出错,因为过滤和复杂的搜索可以直接通过Document.valuate来完成。

提前感谢您考虑这一改进,因为我确信一旦RegExp加入,XPath在复杂的SPA/PWA页面上的使用将再次在库、Web组件或一般Web中蓬勃发展。