我在C#中使用此命令:
foreach (HtmlNode node in
htmlDoc.DocumentNode.SelectNodes("//tr[@class='discussion r1']"))
问题是我需要包含rX
的所有节点:
discussion r0
discussion r1
discussion r2
如何选择所有rX
个节点?
如何在一个foreach中仅选择r0
和r1
?
答案 0 :(得分:0)
您可以尝试使用正则表达式(使用matches
函数)来匹配rX
,
//tr[matches(@class,'discussion r.')]
如果r
//tr[matches(@class,'discussion r.+')]
当至少有一个//tr[matches(@class,'discussion r\d+')]
如果需要后跟数字答案 1 :(得分:0)
HtmlNode.SelectNodes()
仅支持XPath 1.0,它没有正则表达式匹配功能。使用简单的XPath starts-with()
或contains()
函数应该可以解决问题:
//using starts-with()
htmlDoc.DocumentNode
.SelectNodes("//tr[starts-with(@class,'discussion r')]")
//or using contains()
htmlDoc.DocumentNode
.SelectNodes("//tr[contains(@class,'discussion r')]")