如何使用Jsoup解析嵌套描述列表(dl标记)?

时间:2018-05-07 21:56:03

标签: jsoup

我想用Jsoup解析嵌套的描述列表。我可以用for循环和子元素解析flatten dt dd标签。但是我的代码不适合所有深度的描述列表。

<dt><span class="chapter"><a href="jls-1.html">1. Introduction</a></span></dt>
               <dd>
                  <dl>
                     <dt><span class="section"><a href="jls-1.html#jls-1.1">1.1. Organization of the Specification</a></span></dt>
                     <dt><span class="section"><a href="jls-1.html#jls-1.2">1.2. Example Programs</a></span></dt>

代码:

for (int i = 0; i < toc.size(); i++) {
    Element child = children.get(i);
//... processing child texts

}

当描述深度增加时,此for循环不适用于子嵌套子元素。此代码仅在描述列表的深度为1.IS时才有效。是否有一种技术可以解析所有深度的描述列表?

1 个答案:

答案 0 :(得分:0)

您可以使用css选择器。例如:

for (Element e :  Jsoup.parse(html).select("dd > dl > dt > span > a")){
            System.out.println(e.text());   
}

有关选择器的更多信息: https://jsoup.org/cookbook/extracting-data/selector-syntax