2015-09-24 3 views

ответ

2

Решение OP работает, конечно, но, как правило, не рекомендуется использовать сопоставление атрибутов для сопоставления классов. Причина в том, что элемент может иметь много классов, и они могут появляться в любом порядке. Таким образом, сопоставление для

Node.select("div[class=img]").attr("style") 

будет соответствовать только если класс точности и только img. Следующий элемент не будет найден:

<div class="highlight img overview" style="background-image: url(images/rols/roll_1.png);"></div> 

Лучший способ заключается в использовании селектор класса CSS, где .img определяет класс. Обратите внимание на точку, оно принадлежит к селектору:

Node.select("div.img").attr("style") 

Если вам нужно, чтобы соответствовать более одного класса можно сцепить:

Node.select("div.img.highlight").attr("style") 
+0

О, спасибо! это мой первый раз, используя jsoup. Мне нужно изменить все селекторы, такие как «div [class = name]», «div [class = count]» на «div.name» и «div.count»? – Romowski

+0

вам не нужно, если это сработает для вас другим способом. Это немного менее гибко. Если вы управляете оригинальным HTML, это не проблема, потому что вы можете соответствующим образом изменить ситуацию. Если вы анализируете контент, который не принадлежит вам, то вам, вероятно, лучше перейти на более общий стиль выбора класса. – luksch

+0

содержание не мое, я сделаю это более гибким. Спасибо! – Romowski

0

Got его:

Node.select("div[class=img]").attr("style") 

дает мне «фоновое изображение: URL (изображения/РОЛС/roll_1.png);»

Спасибо всем!