Java StAX如何保持XML数据的原样

Java StAX如何保持XML数据的原样,java,stax,Java,Stax,我需要保留一些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;/anotherTa

我需要保留一些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;" />


我想保持数据的原样,而不是对>符号进行编码。

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

如果您只有StAX事件,则不,这是无法实现的,因为当你得到一个属性值

1 2 3 4 5 <anotherTag>someValue</anotherTag>
12345somevalue
从StAX解析器无法知道原始字节是什么样子的-大于号可能是
&x3E,所有这些表单在解析时都将产生相同的值,任何XML解析器都必须将它们视为等价的


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

为什么?就任何XML解析器而言,这两种形式都是相同的。如果您关心差异,那么就不应该使用像StAX这样的xmlapi来处理数据。事实上,您无法知道当您从StAX解析器获取属性值时,它是否在原始字节中表示为
>
或其他任何形式。我同意,这就是我的想法。只是想核实一下。谢谢大家!