2013-03-21 59 views
0

我需要保存一些XML數據,與從另一個系統接收到的數據完全相同。這是我們正在接受什麼樣的一個例子:StAX如何完全保留XML數據

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

當this在讀取,然後保存到我們的數據庫將被保存這樣的:

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

我想確切地保存數據是沒有它編碼>符號。

+0

爲什麼?就任何XML解析器而言,這兩種形式是相同的。如果您關心這種差異,那麼您不應該使用像StAX這樣的XML API來處理數據。事實上,當你從StAX分析器獲得屬性值時,無法知道它是否以原始字節表示爲'>','>','&#x3E'或其他。 – 2013-03-21 12:49:18

+0

我同意,這就是我的想法。只是想驗證。謝謝大家! – wxkevin 2013-03-21 13:19:15

回答

0

的XML如果您有StAX的事件則沒有,有沒有辦法做到這一點,因爲當你從StAX的解析器得到

1 2 3 4 5 <anotherTag>someValue</anotherTag> 

的屬性值也沒有辦法知道原來字節樣子 - 在大於跡象可能已經>&gt;&#x3E;,所有這些形式s在分析時會產生相同的值,任何XML解析器都必須將它們視爲等價。

如果您關心精確的原始表示,那麼您必須在XML世界之外執行此操作 - 在由StAX解析器解析它們之前以某種方式保存原始字節,使用正確的字符編碼解碼它們,並存儲生成的字符串直接導入數據庫。

0

如果您保存您從另一個系統中的數據庫列收到的字符串,不處理,將保證維持原樣