jSoup — Как получить элементы со стилем фона (встроенный CSS)?

Я создаю приложение в 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>

Итак, я могу получить эти элементы выше, но мне не нужны 1-й и 3-й в моем массиве, так как у них нет стиля фона... знаете ли вы, как я могу брать и работать только с ними?

Обратите внимание, что я не предпочитаю ВЫЧИСЛЕННЫЙ стиль или что-то более сложное, мне просто интересно, могу ли я фильтровать на основе свойств встроенного стиля CSS. Возможно, какое-то регулярное выражение постфактум? Я открыт для идей!

Я пытался возиться с :contains(background) в качестве ключевого слова, но я не был уверен, что это правильный путь?

Большое спасибо за вашу помощь. Майкл.


person Michael Giovanni Pumo    schedule 30.11.2012    source источник


Ответы (1)


Попробуйте с:

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

Поскольку *= является стандартным селектором для соответствия подстроке в содержимом атрибута .

person Nelson    schedule 30.11.2012
comment
Спасибо, выглядит логично. Не могу попробовать сейчас, но я вернусь в ближайшие несколько часов. - person Michael Giovanni Pumo; 30.11.2012