替换HTML文件中的特定字符串

时间:2013-12-09 15:14:09

标签: java html parsing

我需要翻译一些HTML页面内容。我有很多HTML文档作为文件列表和一个包含如下翻译的地图:

List<File> files
Map<String, String> translations

只需翻译特定标签(p,h1..h6,li)中的字符串。我希望最终使用与开头相同的文件,但是使用替换的字符串。

两种不起作用的解决方案:

  1. 更换 - 因为我不想在评论或javascript中翻译字符串,另一个问题是原始文本的一个字符串可以是原始文本的另一个字符串的一部分。
  2. 解析像Jsoup这样的库 - 因为它清理,修复了dom结构,我希望有未经修改的HTML结构。
  3. 任何解决方案?

1 个答案:

答案 0 :(得分:1)

你几乎必须使用一个正确的html解析器(它修复了dom结构),因为否则就无法分辨元素的起始位置和结束位置。有各种特殊情况和不同类型的破坏html,如果你想处理它们,你基本上是实现一个完整的HTML解析器。

我能想到的唯一其他方式(以及经常使用的方法)是在原始文件中使用占位符,例如<h1>${title}</h1> <p>${introduction}</p>等,并直接查找和替换它们,但我想这需要一个如果您还没有以这种形式使用文件,那么需要做很多工作。