0

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 要素をインスタンス化する必要があるかどうかわかりません。クラスの javadoc を読みましたDocumentが、body 要素を生成するファクトリ メソッドやセッター メソッドが見つかりません。

JSoup API JavadDoc以外の参考になるリソースの推奨事項も歓迎します。

4

1 に答える 1

1

<body>新しく作成されたドキュメントに要素を追加するには、最も単純な形式で、次を使用します。

doc.appendElement("body");

完全なコードは次のとおりです。

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>

ドキュメンテーションに関しては、あなたはすでにそこにいると思います。彼らの公式サイトが最適な場所です。また、彼らのクックブックも見てみたいと思います。

于 2013-05-25T23:08:46.810 に答える