如何使用Xpath根据列元素的对应值定位表格中的指定行
XPath构造方案
针对你给出的HTML表格结构,要同时满足三个列值条件筛选对应行,可直接使用多谓语组合的XPath语句:
//tr[ td[@column1='data1' and normalize-space(text())='value1'] and td[@column2='data2' and normalize-space(text())='value2'] and td[@column3='data3' and normalize-space(text())='value3'] ]
语法说明
//tr匹配文档内所有<tr>行节点- 方括号内为筛选谓语,多个条件用
and连接,代表需要同时满足所有规则 td[@column1='data1' and normalize-space(text())='value1']表示当前行下存在符合如下规则的<td>节点:- 列属性
column1的值为data1 - 节点文本内容去掉前后空白后等于
value1,这里加normalize-space()是为了适配你样例里标签内容前后带空格的场景,避免匹配失效
- 列属性
用该语句查询你提供的样例代码,只会返回第一个符合条件的<tr>节点,第二个行因为column2对应的文本为value4不满足条件,会被自动过滤。
如果你不需要匹配column属性,仅按列的顺序筛选(第一列值为value1、第二列为value2、第三列为value3),可以用简化写法:
//tr[ td[1][normalize-space(text())='value1'] and td[2][normalize-space(text())='value2'] and td[3][normalize-space(text())='value3'] ]
内容的提问来源于stack exchange,提问作者Dev97M
相关产品推荐
相关产品推荐

