我有一个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>
上面有多个父
答案 0 :(得分:0)
是的,jSoup提供类似的东西。查看此selector使用链接。
您可以尝试这样的事情:
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
过于通用,将返回最外层的父级(以及一个内部子级)。
答案 1 :(得分:0)
这更精确,只需选择标签li,其中类属性以pro pic开头:
Elements litags = yourcontent.select("li[class^=pro pic]");
或者如果你想确定你只使用第一级别的孩子,你可以使用它:
Elements litags = yourcontent.select(" > li[class^=pro pic]");
* PS:我测试了你的内容作为元素。我不知道是否适用于Elements。