4

Apache Velocity ジェネリック テンプレート エンジンから HTML ファイルを生成しています。生成された HTML は見苦しく、正しいインデントがありません。

私の場合、この方法で操作したい String に格納された HTML を持っているので、きれいに印刷されているように見えます。

私はすでに JTidy を試してみましたが、生の HTML をパイプでパイプすると、HTML ソース コードが変更されます。HTMLタグを追加または削除することがあります。

私の質問:

HTMLドキュメントにタグを追加したり削除したりせずにHTMLコードをきれいに印刷するJavaライブラリまたは何か他のものがありますか? きれいに印刷されるように、インデントのみを行います。それ以上でもそれ以下でもありません。何か案は?:-)

コードの提案、ヒント、またはヒントも大歓迎です。

よろしくお願いします

4

3 に答える 3

2

少し遅いかもしれませんが、Jsoupでこれに対する解決策を見つけました。

パーサーのみを使用して「きれいな」バージョンの html を取得し、(必要な場合) 「カスタム パーサー」を使用して html 要素の生成を回避できます。

このJsoupの質問から答えを得ました

そしてその

public static String formatHTML(String html) throws Exception{ Document doc = Jsoup.parse(html, "", Parser.xmlParser()); return doc.toString(); }

これが役立つことを願っています。

よろしく

于 2015-10-26T02:19:16.923 に答える
1

Java で SAX パーサーの例を見つけてください。タグを開くためのindent ++、閉じるためのindent--、カウントされた意図でコンテンツを書く。

于 2011-07-30T00:06:12.483 に答える
0

HTML をきれいに印刷する単純な Java パーサーを自分で作成してみませんか。ここにスケッチがあります:

  1. たとえば、開始タグと終了タグを追跡し、
  2. 現在のインデントレベルを把握するためのカウンターがあります。
  3. おそらく、スタックを使用してインデント レベルをプッシュ、ポップします
  4. タグが表示されたら、HTML 文字列を繰り返し処理し、現在のインデント レベルをスタックにプッシュします。
  5. ネストされたタグが表示された場合は、インデント レベルを上げて続行します
  6. タグの末尾が表示された場合。など、スタックをポップして前のインデントレベルに戻ります

ここで大まかなアイデアを示したいと思います。これを出発点として使用できます。私は多くの perl ベースのきれいなプリンターを作成しました。Perl を使用して、解析をかなり迅速にスクリプト化できます。

于 2011-07-29T23:58:35.650 に答える