使用 Java 将 HTML 符号和 HTML 名称转换为 HTML 数字
我有一个 XML,其中包含许多特殊符号,例如 ®(HTML 编号 ®)等。 和 HTML 名称,如 ã(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ReplaceAll 方法的签名是:
您必须小心,您的第一个参数是有效的正则表达式。 Java Pattern 类描述了构造用于 Java 正则表达式。
根据我在 Pattern 类描述中看到的内容,我看不出有什么问题:
您可以尝试:
看看是否效果更好。
The signature for the replaceAll method is:
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:
You could try:
and see if that works better.
我不认为 \# 是有效的转义序列。
顺便说一句,“®”有什么问题吗?
I don't think that \# is a valid escape sequence.
BTW, what's wrong with "®" ?
如果您想要 HTML 数字,请先尝试转义 XML。
使用 来自 Apache Commons 的 EscapeUtils朗。
Java 可能在处理它时遇到麻烦,所以首先我更喜欢避开 Java,然后是 XML 或 HTML。
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.