[英]Jsoup HTML Parsing - Complex Nodes [Java]
我有这段HTML:
<td class="my class" >
<div class="content" style="margin-left:10px;">
<ul style="list-style-type: disc;">
<li><span>obj: blue</span></li>
<li><span>descr: red</span></li>
<li><span>double: yellow</span></li>
</ul>
</div>
</td>
我需要:
obj: blue
descr: red
double: yellow
我已经尝试过:
docDescription.select("my.class").text();
但是它将返回带有所有文本的块。 我需要3个不同的部分(逐行)。
docDescription.select("div > ul > li > span");
您的文档无效,并且看起来像下面的JSoup。 JSoup始终尝试修复文档。 在您的情况下, td
在任何table
之外,因此将其删除。
<html>
<head></head>
<body>
<div class="content" style="margin-left:10px;">
<ul style="list-style-type: disc;">
<li><span>obj: blue</span></li>
<li><span>descr: red</span></li>
<li><span>double: yellow</span></li>
</ul>
</div>
</body>
</html>
public static void main(String[] args) {
String html = "<td class=\"my class\" >\n" +
" <div class=\"content\" style=\"margin-left:10px;\">\n" +
" <ul style=\"list-style-type: disc;\">\n" +
" <li><span>obj: blue</span></li>\n" +
" <li><span>descr: red</span></li>\n" +
" <li><span>double: yellow</span></li>\n" +
" </ul>\n" +
" </div>\n" +
"</td>";
Elements select = Jsoup.parse(html).select("div > ul > li > span");
for (Element element : select) {
System.out.println(element.text());
}
}
obj: blue
descr: red
double: yellow
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.