jsoup получает значения на основе идентификатора тега div - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть HTML, который имеет следующие теги.

 parent   <li class="pro pic notSold" status="0" >
 child      <ul><li></li><ul>
 parent   <li class="pro pic soldOut" status="-1" >
 child      <ul><li></li><ul>

есть несколько родительских тегов

, как указано выше. Я хочу, чтобы мой цикл работал для всех родительских тегов. Я пробовал, Elements indProducts = html.select ("li"); Это тянуло даже ребенка ли. Я этого не хочу. Я хочу закодировать так, чтобы, если класс начинался с pro pic, он считался бы пропущенным. Что я должен делать? Есть предложение select, которое работает аналогично «like» или что-то в этом роде.

Ответы [ 2 ]

0 голосов
/ 26 июня 2013

Точнее, просто выбираются теги li, для которых атрибуты класса начинаются с pro pic:

Elements litags = yourcontent.select("li[class^=pro pic]");

Или если вы хотите быть уверенным, что вы выбираете только первый уровень дочерних элементов, который вы можете использоватьэто:

Elements litags = yourcontent.select(" > li[class^=pro pic]");  

* PS: я проверил с вашим содержанием в качестве элемента.Я не знаю, работает ли это для Elements.

0 голосов
/ 29 февраля 2012

Да, jSoup предоставляет что-то похожее на лайк.Проверьте эту селектор ссылку использования.

Вы можете попробовать что-то вроде этого:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;


public class JSoupTest 
{
    public static void main(String[] args) 
    {
         String html =   "<li class='pro pic notSold' status='0' >";
         html+=      "<ul><li></li><ul>";
         html+=   "<li class='pro pic soldOut' status='-1' >";
         html+=      "<ul><li></li><ul>";

         Document doc = Jsoup.parse(html);
         Elements elems = doc.select("[class^=pro pic]");

        System.out.println(elems.size());
    }
}

Output = 2

Примечание: Ваш class, начинающийся с pro pic, является слишком общим и возвращает самого внешнего родителя (а также одного внутреннего потомка).

...