使用 Java 将 HTML 符号和 HTML 名称转换为 HTML 编号



我有一个XML,其中包含许多特殊符号,如®(HTML编号&#174)等。和HTML名称,如&atilde(HTML编号&#227)等。

我正在尝试使用Java将这些HTML符号和HTML名称替换为相应的HTML编号。为此,我首先将XML文件转换为字符串,然后使用replaceAll方法作为:

File fn = new File("myxmlfile.xml");
String content = FileUtils.readFileToString(fn);
content = content.replaceAll("®", "&#174");
FileUtils.writeStringToFile(fn, content);

但这行不通。

谁能告诉如何做到这一点。

谢谢!!!

replaceAll 方法的签名为:

public String replaceAll(String regex, String replacement)

您必须注意您的第一个参数是有效的正则表达式。 Java 模式类描述了 Java 正则表达式中使用的构造。

根据我在模式类描述中看到的内容,我看不出有什么问题:

content = content.replaceAll("®", "&#174");

你可以试试:

content = content.replaceAll("\p(®)", "&#174");

看看这是否效果更好。

我不认为\#是一个有效的转义序列。顺便说一句,"&#174"有什么问题?

如果你想要HTML数字,首先尝试对XML进行转义。

使用 Apache Commons Lang 的 EscapeUtils。

Java

可能在处理它时遇到麻烦,所以首先我更喜欢转义Java,然后再转义XML或HTML。

    String escapedStr= StringEscapeUtils.escapeJava(yourString);
    escapedStr= StringEscapeUtils.escapeXML(yourString);
    escapedStr= StringEscapeUtils.escapeHTML(yourString);

最新更新