use*_*374 2 html xhtml xpath google-chrome
我试图返回我的XPath查询和网页的第一个元素,但不确定为什么这不适用于谷歌浏览器.我尝试了各种各样的变化,但这是不成功的.
基本的例子在我的案例中返回:
INPUT: //button[@data-qtip='Next Page']/@id
OUTPUT: [id=?"button-1135-btnEl",id=?"button-1101-btnEl"]
Run Code Online (Sandbox Code Playgroud)
所以我的猜测是选择第一项可以按照以下方式完成,但对我来说都没有用.
INPUT: //button[@data-qtip='Next Page' and position() = 1]/@id
OUTPUT: [id=?"button-1135-btnEl",id=?"button-1101-btnEl"]
INPUT: //button[@data-qtip='Next Page']/@id[1]
OUTPUT: [id=?"button-1135-btnEl",id=?"button-1101-btnEl"]
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)//button[@data-qtip='Next Page']/@id[1]
这是XPath中最常见的FAQ之一.
上述表达式通常不会(仅)选择一个节点.
原因?
在W3C XPath规范中,//缩写的定义方式使得此伪运算符的优先级低于XPath []运算符.
因此,任何表达式如:
//SomeNode[1]
Run Code Online (Sandbox Code Playgroud)
选择所有SomeNode节点,每个节点都是SomeNode其父节点的第一个子节点.在一般情况下,可能存在多个这样的节点.
当我们想要选择SomeNode文档中的第一个节点时,我们必须使用括号覆盖默认的运算符优先级:
(//SomeNode)[1]
Run Code Online (Sandbox Code Playgroud)
在这种特殊情况下使用:
(//button[@data-qtip='Next Page']/@id)[1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |