StAX如何完全保留XML数据

时间:2013-03-21 12:46:54

标签: java stax

我要求保留一些与从另一个系统接收的XML数据完全相同的XML数据。以下是我们收到的一个例子:

<SomeTag display="1 2 3 4 5 &lt;anotherTag>someValue&lt;/anotherTag>" />

当读入并保存到我们的数据库中时,它将保存为:

<SomeTag display="1 2 3 4 5 &lt;anotherTag&gt;someValue&lt;/anotherTag&gt;" />

我希望完全保留数据,而不用编码&gt;登录。

2 个答案:

答案 0 :(得分:0)

如果您将从另一个系统收到的xml保存为DB列中的字符串而未进行处理,则可以保证将其保留为原样

答案 1 :(得分:0)

如果有StAX事件,那么没有,就没有办法实现这一点,因为当你得到属性值为

1 2 3 4 5 <anotherTag>someValue</anotherTag>
来自StAX解析器的

无法知道原始字节是什么样的 - 大于号可能是>&gt;&#x3E;,所有这些形式都会产生解析时的值相同,任何XML解析器都必须将它们视为等效的。

如果您关心精确的原始表示,那么您必须在XML世界之外执行此操作 - 在StAX解析器解析之前以某种方式保存原始字节,使用正确的字符编码对其进行解码,并存储结果字符串直接进入您的数据库。