【发布时间】:2012-02-15 15:46:22
【问题描述】:
想象以下情况:我们从某个外部工具接收到一个 xml 文件。最近在这个 xml 中,节点名或它们的richcontent 标记中可能有一些转义字符,如以下示例(简化):
<map>
<node TEXT="Project">
<node TEXT="ää">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
I am a Note for Node ää!
</p>
</body>
</html>
</richcontent>
</node>
</node>
</map>
在使用 JAXB 解组文件后,那些转义的字符不会转义。不幸的是,我需要他们保持原样,意思是逃跑了。有什么方法可以避免在解组时取消转义这些字符?
在研究时,我发现了很多关于编组 xml 文件的问题,但这些问题也对我没有帮助:
是否有可能通过 JAXB 实现这一目标,或者我们是否必须考虑更改为不同的 xml 阅读器 API?
提前谢谢你, 梅内
【问题讨论】:
-
对于任何 xml 解析器来说,源文档是否包含
ä、'ä` 或&#xe4都无关紧要,为什么这对你来说很重要? -
问题是:在导入这些 XML 数据后,我们将其与我们的程序数据合并。在那里我们更改了一些细节,然后想将这些细节写回外部工具的 xml 中。由于我们不会仅仅为了将数据编组回 xml 中而构建另一个对象图,因此我们决定使用 StAX,因为此时这更简单。从那时起,直到现在我们还没有任何转义字符,不幸的是,外部工具希望这些字符仍然可以工作。
标签: java xml escaping unmarshalling