将所有xml实体更改为html

时间:2011-02-01 21:08:42

标签: java xml

我正在阅读一份文档,其中可能包含&#160等XML实体。

由于我需要导出txt文件,因此我必须手动将实体从XML转换为文本。

如下所示。

reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
while ((s = reader.readLine()) != null) {
 if (s.equals("&#160"))
   s= " ";
}

由于有许多xml实体,并且我想将它们全部转换为&#160 - >空格等文本,并且希望避免这样做,是否有通用的方法来执行此操作?

2 个答案:

答案 0 :(得分:2)

 中提取数字时,您可以执行以下操作:

(new String(new byte[]{(byte)160}, "ISO-8859-1")).

以下是实体映射:HTML ISO-8859-1 Reference

答案 1 :(得分:1)

我相信你所说的是HTML(不是XML)解码。有一个URLDecoder类可以为URL执行此操作(可能是您正在解码的内容)。 Apache公共区域中还有一个更通用的类用于HTML解码(在此question中指定)。

编辑:感谢澄清,我不知道HTML和XML转义/实体之间的区别。从this question看来,Apache commons有一个用于解码XML实体的库,但标准的Java库却没有。