jSoup - 如何获取具有背景样式的元素(内联CSS)?

时间:2012-11-30 14:21:55

标签: regex jsoup railo cfml

我正在使用jSoup .jar库在Railo中构建一个应用程序。这一切在我的CFML语言中都很有效。

无论如何,我可以使用“style”属性抓取每个元素:

<cfset variables.mySelection = variables.myDocument.select("*[style]") />

但是这会返回一个数组,其中包含有时没有“背景”或“背景图像”样式的元素。例如,HTML可能如下所示:

<p style="color: red;">I should not be selected</p>
<p style="background: green">I **should** be selected</p>
<p style="text-align: left;">I should not be selected</p>
<p style="background-image: url("/path/to/image.jpg");">I **should** be selected</p>

所以我可以在上面得到这些元素,但我不希望我的数组中的第1个和第3个,因为它们没有背景样式......你知道我怎么只能抓住它们并使用它们吗?

请注意,我是在COMPUTATED样式之后,或者任何复杂的事情,我只是想知道我是否可以根据内联CSS样式的属性进行过滤。事后可能还有一些正则表达式?我很开心!

我尝试将:contains(background)作为关键词,但我不确定这是否是正确的路径?

非常感谢你的帮助。 迈克尔。

2 个答案:

答案 0 :(得分:1)

尝试:

variables.myDocument.select("*[style*='background']")

由于*=是匹配属性内容中子字符串的标准选择器。

答案 1 :(得分:0)

<div>
Test this text
</div>
<button id="Bold-Btn">
Bold
</button>

Elements els = doc.select(div[style*=dashed]);