-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函数并创建一个函数来解析 line which pattern is like "^.*<!\\-\\-\\$include file\\=\"(.+)\\.(html|htm)\" \\-\\->.*$",这是一个正则表达式,它可以匹配您搜索的正则表达式。让我们将函数的名称定义为checkRule(line:String):boolean
  3. 如果返回 true,并获取文件名,则通过传递刚刚找到的文件名checkRule递归调用。getFileList
  4. 小心无限循环。比如a.htmlincludeb.htmlb.htmlincludes a.html,就会变成无限循环。因此,您需要检查文件列表以忽略该文件。

祝你好运!!!

于 2012-12-28T10:07:08.283 回答