2012-04-04 52 views
0

我想在marshelling特殊字符應該逃脫, 有沒有辦法做到這一點?用JiBX(Un)編組轉義特殊字符

alt="<i><b> image alt</b></i>" 

這個被保存爲

&lt;b>&lt;i>image alt&lt;/b>&lt;/i> 

我想如果你存儲的東西作爲XML保存價值,因爲它是

回答

1

,你必須逃脫的跡象。否則,你的XML將成爲無效:

<xml>text</xml> 

if test == </xml> the XML will be clearly invalid: 

<xml></xml></xml> 

這必須是:

<xml>&lt;/xml></xml> 

如果解組,它應該重新成爲正確的值。

您也可以使用CDATA

+0

我遇到了同樣的問題,反編組沒有將<轉換回<。但是,CDATA提示很有幫助,謝謝。 – uthomas 2013-03-07 07:57:07

1

我想我分享我的經驗,因爲答案我發現沒有全面退出(和我仍然不很確定這是否是最專業的解決方案在那裏)。

在我們的項目中,我們使用的maven-的JiBX-插件產生的XSD從POJO的(兩分像往常一樣:1. * .xsd-> binding.xml,然後2. binding.xml-> *的.java )。

基於JiBX的郵件列表上documentation of value nodeDennis Sosnoski's answer我加XML的Maven的插件我們的項目構建過程。我使用它在POJO生成之前在生成的binding.xml中應用XSL文件。重點是將適當值節點上的樣式屬性值從文本更改爲cdata。

到目前爲止,接縫它解決了我的問題,編碼,現在我可以返回到客戶端個XML,如:

<Description><![CDATA[<strong>Valuable content goes here</strong>...<br />]]></Description> 

希望這是某人的生活更輕鬆。 :)