0

我正在使用 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 的选择器。有人可以帮忙吗?

4

2 回答 2

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();

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

于 2013-10-15T10:42:21.127 回答
0

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

Document doc = Jsoup.parse(html);
Elements elements = doc.select("p");
for(Element p : elements) {
    p.text();
}
于 2013-10-15T10:48:45.363 回答