Xpath和通配符
本文关键字:通配符 Xpath | 更新日期: 2023-09-27 17:49:29
我尝试了几种组合都没有成功。该数据的完整xpath是.//*[@id='detail_row_seek_37878']/td
。问题是每个节点的数字部分'37878'发生了变化,因此我不能使用foreach来遍历节点。是否有某种方法可以使用通配符并将xpath减少为.//*[@id='detail wildcard
,从而绕过绝对值部分?我使用的是html敏捷包。
HtmlNode ddate = node.SelectSingleNode(".//*[@id='detail_row_seek_37878']/td");
提取不改变的部分:
//*[starts-with(@id, 'detail_row_seek')]/td
相关技术和函数
匹配id
属性在第7个字符处包含字符串_row_
的元素:
//*[substring(@id, 7, 5)='_row_']/td
匹配id
属性在任意位置包含文本detail_
的元素:
//*[contains(@id, 'detail_')]/td
匹配id
属性以结尾的元素的文本detail_row_seek
:
//*['detail_row_seek' = substring(@id,
string-length(@id) - string-length('detail_row_seek') + 1)]/td