Xpath和通配符

时间:2011-04-09 20:13:55

标签: 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");

1 个答案:

答案 0 :(得分:14)

提取未更改的部分:

//*[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