使用Jsoup,克隆的元素没有所有者Document,这使我无法为这些元素设置输出设置,这导致我的应用程序中出现一些问题。试试这个:
package test;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class Main {
public static void main(String[] args) {
Document doc = Jsoup.parse("<div></div>");
doc.outputSettings(new Document.OutputSettings().prettyPrint(false));
Element e = doc.body();
Element copy = e.clone();
System.out.println(e.outerHtml());//returns html not pretty printed
System.out.println(copy.outerHtml());//returns html pretty printed
System.out.println(copy.ownerDocument());//returns null
}
}
问题是,对于内联元素,这会产生影响。例如,如果我得到
<body>
<div style="display:inline;">
test
</div>
<div style="display:inline;">
test
</div>
</body>
而不是
<div style="display:inline-block;">test</div><div style="display:inline-block;">test</div>
我得到了额外的空格,这是错误的。
答案 0 :(得分:0)
我认为我得到了诀窍:
class Employee {
int id;
int age ;
String name ;
String designation;
String address;
}
我们的想法是进行新的解析以生成新的Document,然后克隆OutputSettings。不知道为什么我没想到它。