如何将“&”符号插入Word 2007 .docx XML文件?

4

根据客户输入,我正在生成基于xml的Word文档,当然,每当使用&时,它就会崩溃。 我尝试将所有&实例替换为&,但是&实际上出现在我的Word文档中。 这是我的代码:

        static String replace(String in) {
            String ampersand = "&(?![a-zA-Z][a-zA-Z][a-zA-Z]?[a-zA-Z]?;)";
            return in.replaceAll(ampersand,"&");
        }

任何想法?

代码被用在哪里?你是如何生成XML的? - SLaks
我有一个docx文档作为模板,其中包含一些字符串占位符,我将其替换为用户提供的字符串。 - John
为什么不用 && 替换 & 呢?我认为 & 必须是某个分隔符。 - Dave
4个回答

2

问题是&符号在目录中和标题中的转义方式不同。

在目录中,它被转义为&,而在标题中则被转义为\u0026

解决方案是在目录和标题中以不同的方式转义&符号:

  • 目录:HTML转义序列
  • 标题:Unicode转义序列。

1

你尝试过用 & 或者 &(Unicode)替换掉这个&符号吗?


0

你的正则表达式似乎有问题。为什么不直接这样做:

    static String replace(String in) {
        return in.replace("&","&");
    }

因为如果我调用那个函数两次,我会得到&。 - John
好的,假设您只调用一次,那么它会起作用吗?在这种情况下,您肯定使用了错误的正则表达式。 - Daniel

0

Word 2007本身是可以做到&的,所以你的问题一定是其他原因造成的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接