3

これらのライブラリとは逆のことができるライブラリを誰かに勧めてもらえますか?

HtmlCleaner、TagSoup、HtmlParser、HtmlUnit、jSoup、jTidy、nekoHtml、WebHarvest、または Jericho。

HTML ページを作成し、文字列コンテンツから DOM モデルを作成する必要があります。

編集:テスト目的で必要です。さまざまな場所の html ページにある可能性のあるさまざまな種類の入力/文字列があります...したがって、動的に構築する必要があります...次に、満たす必要があるさまざまな基準に基づいて html ページを処理します。

この質問をした理由を説明します。この仕事には htmlCleaner を検討してください。

List<String> paragraphs = getParagraphs(entity.getFile());
List<TagNode> pNodes = new ArrayList<TagNode>();

TagNode html = cleaner.clean("<html/>");
for(String paragraph : paragraphs) {                
    TagNode p = new TagNode("p");
    pNodes.add(p);
    // CANNOT setText() ?
}
html.addChildren(pNodes);

問題は、方法はあるTagNodeが、方法getText()がないsetText()ことです....

この質問がどれほど漠然としているかについて、さらにコメントを追加してください...あなたができる最善のこと

4

4 に答える 4

8

汁、汁、汁!私はそれらすべてを使用しましたが、ロングショットで私のお気に入りです。これを使用してドキュメントを作成できます。さらに、Jquery スタイルのトラバースの多くの魔法と、Java ライブラリでこれまでに見た中で最高の HTML ドキュメントの解析をもたらします。恥知らずに宣伝しても構わないくらい満足しています。;)

于 2011-05-31T19:59:50.167 に答える
2

特に HtmlCleaner に興味がある場合は、実際には HTML ドキュメントを作成するのに非常に便利な選択肢です。

ただし、コンテンツを TagNode に設定する場合は、子 ContentNode 要素を追加することを知っておく必要があります:-)

List<String> paragraphs = getParagraphs(entity.getFile());
List<TagNode> pNodes = new ArrayList<TagNode>();

TagNode html = new TagNode("html");
for(String paragraph : paragraphs) {                
    TagNode p = new TagNode("p");
    p.addChild(new ContentNode(paragraph));
    pNodes.add(p);
}
html.addChildren(pNodes);
于 2011-05-31T20:55:34.923 に答える
1

Java には、JSP から FreeMarker まで、さまざまなフレームワーク (Spring?) の特定の実装から StringTemplate のような汎用ライブラリまで、多数のテンプレート ライブラリがあります。

最も難しいタスクは... 選択をすることです。

一般に、これらのライブラリは Web ページのスケルトンを作成し、変数で埋める「穴」を提供します。これは最も単純なアプローチであり、多くの場合、ツールでうまく機能します。
本当に Dom からビルドしたい場合は、XML ライブラリを使用して XHTML を生成できます。

于 2011-05-31T20:08:22.620 に答える
0

jwebutils -- Java を使用して HTML 5 マークアップを作成するためのライブラリ。また、JSON および CSS 3 マークアップの作成もサポートしています。

Jakarta Element Construction Set (ECS) - さまざまなマークアップ言語の要素を生成するための Java API で、HTML 4.0 と XML を直接サポートします。現在は引退していますが、本当に好きな人もいます。

于 2012-02-21T22:50:45.320 に答える