gpt4 book ai didi

java - 读取为数字代码而不是特殊字符

转载 作者:行者123 更新时间:2023-12-01 04:17:11 24 4
gpt4 key购买 nike

我有一个 XML 文件可供 SAX 解析器读取、存储到 CSV 中并导入到数据库中。

在我的 XML 文件中,有一位作者的姓名为:<author>G&uuml;nther Heinemann</author>正如您所看到的,XML 中的“ü”写为 &umml; .

所以是的,我需要将作者存储在数据库中。我无法将该字符存储为“ü”。我需要将其存储为 &umml;

但是当我使用 SAX 解析器从 XML 中读取时,它继续读取为“ü”而不是 &umml;我怎样才能使Java存储为&umml;而不是“ü”?

谢谢

最佳答案

它可能也很慢,因为可能会读取包含包含内容的巨大 HTML DTD。但是您需要它,因为不允许使用单个与号 (&)。 HTML DTD 定义了数百个 HTML 实体名称,例如 &perc; (%)。

DTD 可以取自 XML 目录,即该 HTML URL 的离线本地版本。然后您可以更改实体。但这工作量太大了。

我们可以做的就是在解析器中安装您自己的EntityHandler,等等。研究工作,比较轻松。

最简单的方法是将输入包装在您自己的 InputStream/Reader 中,例如使用 BufferedReader 将 & 替换为 &,这样就可以完成所需的替换。

在 XML 中:ü 而不是 ü

line = line.replace("&", "&amp;");
// Undo XML escapes:
String[] xmlTags = { "amp", "lt", "gt", "quot", "apos" };
for (String xmlTag : xmlTags) {
line = line.replace("&amp;" + xmlTag + ";", "&" + xmlTag + ";");
}

关于java - 读取为数字代码而不是特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com