我尝试了几种组合但没有成功。该数据的完整xpath是.//*[@id='detail_row_seek_37878']/td ' .//*[@id='detail_row_seek_37878']/td 。问题是每个节点的数字部分'37878'发生了变化,因此我无法使用foreach循环遍历节点。是否有某种方法可以使用通配符并将xpath减少到.//*[@id='detail wildcard [ .//*[@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

//*['detail_row_seek' = substring(@id, 
        string-length(@id) - string-length('detail_row_seek') + 1)]/td 


Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow