1
我試圖使用JAXB序列化一個類,該JAXB具有一些CDATA字段,並且某些字段包含需要轉義的特殊字符(包括<和>)。問題是我無法讓這兩種情況下的轉義處理正常工作。在不轉義CDATA標籤的情況下轉義XML字符
使用自定義CDATA適配器,如果我設置我的編組的下列財產,
jaxbMarshaller.setProperty(CharacterEscapeHandler.class.getName(),
(CharacterEscapeHandler) (ch, start, length, isAttVal, out) -> out.write(ch, start, length));
我得到:
<key1><![CDATA[Test]]></key1> # What I want
<key2>some_>_value</key2> # Invalid XML
如果刪除該屬性並讓JAXB處理其自己的逃逸,我得到:
<key1><![CDATA[Test]]> # Not what I want
<key2>some_<_value</key2> # What I want
但我需要的是:
<key1><![CDATA[Test]]></key1>
<key2>some_<_value</key2>
有沒有什麼辦法可以讓我的轉義處理函數這樣呢?
據我所看到的,這仍然會給我錯誤的結果,因爲'一些_> _值 '是無效的XML。 –