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

发布于 2024-11-08 12:01:34 字数 437 浏览 0 评论 0原文

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

我尝试使用 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);

但这不起作用。

谁能告诉我该怎么做。

谢谢 !!!

I have an XML which contains many special symbols like ® (HTML number ®) etc.
and HTML names like ã (HTML number ã) etc.

I am trying to replace these HTML symbols and HTML names with corresponding HTML number using Java. For this, I first converted XML file to string and then used replaceAll method as:

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

But this is not working.

Can anyone please tell how to do it.

Thanks !!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

檐上三寸雪 2024-11-15 12:01:34

ReplaceAll 方法的签名是:

public String replaceAll(String regex, String replacement)

您必须小心,您的第一个参数是有效的正则表达式。 Java Pattern 类描述了构造用于 Java 正则表达式。

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

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

您可以尝试:

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

看看是否效果更好。

The signature for the replaceAll method is:

public String replaceAll(String regex, String replacement)

You have to be careful that your first parameter is a valid regular expression. The Java Pattern class describes the constructs used in a Java regular expression.

Based on what I see in the Pattern class description, I don't see what's wrong with:

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

You could try:

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

and see if that works better.

童话里做英雄 2024-11-15 12:01:34

我不认为 \# 是有效的转义序列。
顺便说一句,“®”有什么问题吗?

I don't think that \# is a valid escape sequence.
BTW, what's wrong with "®" ?

两仪 2024-11-15 12:01:34

如果您想要 HTML 数字,请先尝试转义 XML。

使用 来自 Apache Commons 的 EscapeUtils朗

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

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

If you want HTML numbers try first escaping for XML.

Use EscapeUtils from Apache Commons Lang.

Java may have trouble dealing with it, so first I prefere to escape Java, and after that XML or HTML.

    String escapedStr= StringEscapeUtils.escapeJava(yourString);
    escapedStr= StringEscapeUtils.escapeXML(yourString);
    escapedStr= StringEscapeUtils.escapeHTML(yourString);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文