我有以下 DOM
<row>
<link href="Büro.txt" target="_blank">
my link
</link>
</row>
当我使用 Java XmlSerializer 将其序列化为文件时,结果如下:
<row>
<link href="B&#252;ro.txt" target="_blank">
my link
</link>
</row>
有没有办法控制 XmlSerializer 处理属性转义的方式?我应该以不同的方式做这件事吗?
更新
我还应该说我使用的是 jre 1.6。直到最近我一直在使用 jre 1.5,我很确定它被“正确”序列化(即“&”没有被转义)
澄清
DOM 是以编程方式创建的。这是一个例子:
Document doc = createDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
root.setAttribute("test1", "ê");
root.setAttribute("test2", "üöä");
root.appendChild(doc.createTextNode("ê"));
StringWriter sw = new StringWriter();
serializeDocument(doc, sw);
System.out.println(sw.toString());
我的解决方案
我并不想这样做,因为它涉及大量的代码更改和测试,但我决定将属性数据移动到 CDATA 元素中。问题解决避免。