使用jsoup

时间:2017-05-10 12:55:53

标签: java jsoup html-parsing

假设有两个html页面。第1页和第2页

page1包含html,如

<div class="content">
<p></p>
<p></p>
</div>

和page2包含html,如

<div id="main-content">
<p></p>
<p></p>
<p></p>
</div>

现在我写了一个像

这样的jsoup解析器
Document document = Jsoup.connect(url).get();
             Elements links = document.select("div[class~=content$]");

              for (Element heading2 : links) {
                Elements p = heading2.select("p");
                 for (Element ptext : p) {
                    System.out.println(ptext.text());
                             }
                                 }

在此代码中,它说如果div class 在末尾包含content,那么它会解析数据,但当页面包含div id="content"时,它无法通过数据...我知道当然它不能......我的问题是有没有办法检查在{div}结束时<div> id 是否包含content id / class然后解析它?

1 个答案:

答案 0 :(得分:1)

您可以使用逗号指定几个彼此独立的选择器。因此,您可以创建一个搜索<script> (function(modelEl) { if (!window['AFRAME'] && !modelEl) { return; } modelEl.addEventListener('model-loaded', function(evt) { var model = evt.detail.model; traverse(model); }); })(document.getElementById('stadium')); function traverse(node) { node.children.forEach(function(child) { if (child.children) { traverse(child); } updateMaterial(child['material'], THREE.DoubleSide); }); } function updateMaterialSide(material, side) { if (!material) { return; } if (material instanceof THREE.Material) { material.side = side; material.needsUpdate = true } else if (material instanceof THREE.MultiMaterial) { material.materials.forEach(function(childMaterial) { updateMaterial(childMaterial, side); }); } } </script> ,其他搜索<div id="main-content">

<div class="content">