我正在尝试使用JSoup从无法生成HTML,即不解析文件,而是生成HTML输出以便在对象中显示数据。我是JSoup的新手,并且一直在寻找一些如何使用它来生成HTML的例子,但是没有为这个特定的任务找到很多有用的内容,所以我一直在修补,但收效甚微。这是一些[非工作]代码:
package jsouptest;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JSoupTest {
public static void main(String[] args) {
Document doc = new Document("");
Element headline = doc.body().appendElement("h1").text("Some text");
Element pTag = doc.body().appendElement("p").text("some text ...");
Element span = pTag.prependElement("span").text("MoarTxt");
}
}
这一行:
Element headline = doc.body().appendElement("h1").text("Some text");
引发NullPointerException
。通过一些反复试验,我相信我已经确定问题是doc.body()
没有在任何地方定义。我假设(显然,错误地)新实例化的Document
将带有空体。但是,情况似乎并非如此。我无法弄清楚是否需要实例化一个新的body元素。我已经阅读了Document
类的javadoc,但没有看到任何类型的工厂或setter方法可以为我生成body元素。
对于JSoup API JavadDoc以外可能有用的资源的建议也是受欢迎的。
答案 0 :(得分:1)
要以最简单的形式将<body>
元素附加到新创建的文档,请使用:
doc.appendElement("body");
Heres'你的完整代码:
public static void main(String[] args) {
Document doc = new Document("");
doc.appendElement("body");
Element headline = doc.body().appendElement("h1").text("Some text");
Element pTag = doc.body().appendElement("p").text("some text ...");
Element span = pTag.prependElement("span").text("MoarTxt");
System.out.println(doc);
}
输出:
<body>
<h1>Some text</h1>
<p><span>MoarTxt</span>some text ...</p>
</body>
至于文档,我相信你已经在那里,他们的官方网站是最好的地方。我还要看看他们的cookbok。