Xpath和通配符

JRB*_*JRB 2 c# xpath screen-scraping html-parsing html-agility-pack

我尝试了几种组合但没有成功.该数据的完整xpath是.//*[@id='detail_row_seek_37878']/td 问题是每个节点的数字部分'37878'发生了变化,因此我无法使用foreach循环遍历节点.有没有办法使用通配符并减少xpath .//*[@id='detail wildcard,以绕过绝对值部分?我正在使用html敏捷包.

 HtmlNode ddate = node.SelectSingleNode(".//*[@id='detail_row_seek_37878']/td");
Run Code Online (Sandbox Code Playgroud)

Way*_*ett 14

提取不变的部分:

//*[starts-with(@id, 'detail_row_seek')]/td
Run Code Online (Sandbox Code Playgroud)

相关技术和功能

要匹配其id属性包含_row_ 第7个字符的字符串的元素:

//*[substring(@id, 7, 5)='_row_']/td 
Run Code Online (Sandbox Code Playgroud)

要匹配其id属性包含detail_任何位置的文本的元素:

//*[contains(@id, 'detail_')]/td 
Run Code Online (Sandbox Code Playgroud)

要匹配其id属性文本结尾的元素detail_row_seek:

//*['detail_row_seek' = substring(@id, 
        string-length(@id) - string-length('detail_row_seek') + 1)]/td 
Run Code Online (Sandbox Code Playgroud)