使用Jsoup解析以下HTML时:
String html = "<iframe allowfullscreen></iframe>";
Document doc = Jsoup.parseBodyFragment(html);
System.out.println(doc.body().html());
我得到以下输出:
<iframe allowfullscreen=""></iframe>
即使它必须具有相同的含义(source),也有任何方法告诉Jsoup将布尔属性保持其原始形式(即输入中的属性,在示例中为
allowfullscreen
而不是allowfullscreen=""
) ? 最佳答案
不幸的是,我认为没有简单的设置可以控制它。如果有的话,您可能希望在Document.OutputSettings
中找到它。
正如我在评论中所说,好消息是该属性的原始形式得以保留,并且可以通过attr
使用,但您无法分辨allowfullscreen
本身与allowfullscreen=""
之间的区别。
因此,您可以自己序列化文档,而不能以模数的形式来区别一个区别。或者,由于Jsoup是开源的,因此您可以为此添加一个Document.OutputSettings
设置(以及可能在解析器中进行的修改,以告知上述两种情况之间的区别),并更新html
和相关方法中的逻辑为了遵守设置,最好是通过分叉the project,进行更改,对更改进行测试并进行拉取请求。 :-)可能不是一个人想要的答案,但是OS的好处是您可以自己抓痒,并在此过程中改进项目。