我正在学习Jsoup,并具有以下HTML:
[...]
Content
Content
Content
[...]
我使用Jsoup.parse()和文档select(“ p”)捕获“内容”(效果很好).但…
[...]
Content
Content
Content
[...]
在此场景中,我看到Jsoup.parse()将此代码转换为:
[...]
Content
Content
Content
[...]
如何使用Jsoup(div 3内的div 4& 5)保持嵌套段落的顺序?
添加示例:
HTML档案:
TitleText
Text
Text
Text
Text
Text
Java代码:
Document doc = null;
doc = Jsoup.connect(URL_with_HTML).get();
System.out.println(doc.outerHtml());
返回:
TitleText Text
Text Text
Text Text
是正确的吗?我使用的是Jsoup 1.6.1.我知道Jsoup应该返回嵌套的段落,而不是先前的返回.
解决方法:
> p标签会通过以下任意一种自动关闭:地址,商品,旁边,blockquote,div,dl,字段集,页脚,表格,h1,h2,h3,h4,h5,h6,标头,hgroup,hr,main ,菜单,nav,ol,p,pre,section,table或ul.因此,< p>< div>< / div>变成< p< / p> div< / div>.
>没有对应的开始标签的名称为p(即/ p)的结束标签是解析错误,并被< p>代替.因此< span> / span< / p>变为< span> / span< p>.
因此,jsoup是正确的,您的HTML无效.
请确保您理解HTML无效,因为您有太多< / p>而不是因为“嵌套”段落.无法嵌套,因为它们会自动关闭.但是后面的< / p>之所以过时,是因为“相应的”< p>之前已经自动关闭.
标签:jsoup,java
来源: https://codeday.me/bug/20191201/2081758.html