【问题标题】:jSoup - How to get elements with background style (inline CSS)?jSoup - 如何获取具有背景样式的元素(内联 CSS)?
【发布时间】:2012-11-18 18:42:54
【问题描述】:

我正在 Railo 中构建一个应用程序,它使用 jSoup .jar 库。这一切在我的 CFML 语言中运行得非常好。

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

<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>

所以我可以得到上面的这些元素,但我不希望我的数组中的第一个和第三个,因为它们没有背景样式......你知道我如何只能抓取和使用这些吗?

请注意,我不是追求 COMPUTATED 样式或任何复杂的东西,我只是想知道我是否可以根据内联 CSS 样式的属性进行过滤。也许事后一些正则表达式?我对想法持开放态度!

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

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

【问题讨论】:

    标签: regex jsoup railo cfml


    【解决方案1】:
    Elements els = doc.select(div[style*=dashed]);
    

    或者

    Elements elements = doc1.select("span[style*=font-weight:bold]");
    

    【讨论】:

      【解决方案2】:

      尝试:

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

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

      【讨论】:

      • 谢谢,这看起来合乎逻辑。现在无法尝试,但我会在接下来的几个小时内回来。
      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 2014-02-24
      • 2013-02-04
      • 2014-01-15
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多