-1

与えられたファイル(ieahtml)から始めたいのですが、そのようなパターンが表示された場合:

<!--$include file="b.html"-->

私はそのファイル(b.html)に行き、それが持っているものは何でも取り、すべてのファイルは最終ファイル(すなわちoutput.html)に書き込まれます

b.htmlにインクルードが表示された場合は、そのインクルードもフォローして、そのインクルードをすべて取得し、Javaで再帰的に繰り返す必要がありますか?

何か案は?

PS: jsp:includeと似ていますが、自分で実装したいと思います。私はそれをMavenプラグインとして実装し、必要に応じてMavenプラグインを構築しましたが、再帰を使用するかどうか、正規表現パターンまたはその他の効率的な方法を使用することが私が探しているものです。

4

1 に答える 1

0
  1. ファイルリストを取得する関数を作成する必要がありますgetFileList(htmlFile:File): File[]
  2. 関数を作成readlineし、パターンが似ている行を解析する関数を作成します"^.*<!\\-\\-\\$include file\\=\"(.+)\\.(html|htm)\" \\-\\->.*$"。これは正規表現であり、検索した正規表現と一致できます。関数の名前を次のように定義しましょうcheckRule(line:String):boolean
  3. true を返し、ファイル名を取得する場合は、見つかったファイル名を渡してcheckRule再帰的に呼び出します。getFileList
  4. 無限ループに注意。たとえば、a.htmlincludes b.htmlb.htmlincludes a.html、無限ループになります。そのため、ファイルを無視するには、ファイル リストを確認する必要があります。

幸運を!!!

于 2012-12-28T10:07:08.283 に答える