有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于HTML的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) 个答案

  1. # 1 楼答案

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

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

    您可以使用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>标记