我想用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时才有效。是否有一种技术可以解析所有深度的描述列表?
答案 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