2017-08-13 956 views
0

我想在HtmlPage中找到任何包含单词'date'的类的元素。HtmlUnit通过包含字符串的类名称获取元素

即我想匹配任何以下的:

<div class = 'date'> August 13 2017 </div> 
<span class = 'pubDate'> August 12 2017 </div> 
<div class = 'datePublished'> August 10 2017 </div> 

为了精确匹配“日期”我使用了以下内容:

HtmlPage page; 
List<HtmlDivision> date = page.getByXPath("//div[@class='date']"); 
System.out.println(date.get(0)); 

这是正常工作。

但是,如何改变这个(或我应该使用什么)以便能够匹配任何包含单词date(不区分大小写)的类名的元素?

回答

1

尝试下面的XPath匹配所有div元素与属性class包含"date"

//div[contains(@class, 'date')] 
+0

,但我也希望它是不区分大小写(匹配“pubdate的”等)这不工作对于那些大写'日期' –

+0

在这种情况下,你可以尝试''[div [matches(@class,'date','i')]',或者,如果你的工具不支持'matches()'' // div [包含(@class,'date')或者包含(@class,'Date')]' – Andersson

+0

没问题,但是如何匹配任何元素?不只是div?像任何div或span或任何含有日期类的元素? –