用于HTML的Jsoup选择器组合

时间:2013-10-15 01:38:22

标签: java jsoup

我正在使用Jsoup来解析我拥有的html文件。我有一个像这样的html结构

<p> abcd </p>                                  // 1            

<p id='1234'>                                  // 2
    <tt class='translate'> efgh </tt>
</p>

<p class='questions'>                         // 3
    <tt class='translate'> ijkl </tt>
</p>

<p>                                            //4
    <tt class='translate'> mnop </tt>
</p>

我使用选择器“p [id] tt.translate”和“p.questions tt.translate”得到2和3。我很难找到1和4的选择器。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您可以使用CSS选择器选择所有<p>标记作为Elements集合,并选择该集合中的第一个Element对象。

Document doc = Jsoup.parse(html); //Parse document
Element e = doc.select("p").first(); //Select the first of all <p>-elements

还有其他几种方法可供选择,例如

Element e = doc.select("p:eq(0)").first();

将导致在它所在的树中选择索引等于0的所有<p>标记。

答案 1 :(得分:0)

如果您需要每个<p>的文本,我会选择所有这些文本,然后简单地迭代:

Document doc = Jsoup.parse(html);
Elements elements = doc.select("p");
for(Element p : elements) {
    p.text();
}