java嵌套标签_java-Jsoup解析和嵌套标签

我正在学习Jsoup,并具有以下HTML:

[...]

Content

Content

Content

[...]

我使用Jsoup.parse()和文档select(“ p”)捕获“内容”(效果很好).但…

[...]

Content

Content

Content

[...]

在此场景中,我看到Jsoup.parse()将此代码转换为:

[...]

Content

Content

Content

[...]

如何使用Jsoup(div 3内的div 4& 5)保持嵌套段落的顺序?

添加示例:

HTML档案:

Title

Text

Text

Text

Text

Text

Text

Java代码:

Document doc = null;

doc = Jsoup.connect(URL_with_HTML).get();

System.out.println(doc.outerHtml());

返回:

Title

Text 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值