如果我遍历所有并在第一个之后立即中断:
<li class="parts partname parts_first">
<div id="dpdn10" uri="/public/page/part1" class="partype partstate">
<div class="ptctainer">
<div class="ptitle">
<p class="ptypead">
<span class="rtext"><a href="http://www.example.com/page/ptname.html?dv=rfirst" class="mnLabel">First</a></span>
<span class="ndx">
<a href="#" dndx="dpdn10" class="xpnd _t" style="opacity:1">Details: </a>
</span>
</p>
</div>
</div>
<div id="dpdn10_content" class="xpns">
<div class="ptctainer">
<div class="ptitle">
<p class="ptypead">
<span class="rtext"><a href="http://www.example.com/page/ptname.html?dv=rfirst" class="mnLabel">First</a></span>
<span class="ndx"><a href="#" class="xpnd">Details: </a></span>
</p>
</div>
</div>
</div>
</div>
</li>
当我可以假设两个实例的 href 值相同时,我当然可以这样做如上例所示。
但是,如果它们不相同并且我想提取特定的(第一个或第二个),则此方法将失败。
这让我开始在 Jsoup 中寻找一种允许“嵌套选择”的机制:到目前为止,我一直熟悉单级选择,如:
Elements links = doc.select("a[href]"); // a with href
Elements pngs = doc.select("img[src$=.png]"); // img with src ending .png
Element masthead = doc.select("div.masthead").first(); // div with class=masthead
但我找不到多级选择的文档或示例,例如
Element link= doc.select("div.xpns.div.ptctainer.div.ptitle.p.ptypead.span.rtext");
当然,上面是为了说明而不是真正的语法。我不知道在 Jsoup 中是否有可能(还)这样的事情。
Jsoup中是否存在这种“嵌套选择”?