0

マーシェリング中に特殊文字をエスケープする必要がありますが、これを行う方法はありますか?

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

これは次のように保存されます

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

そのまま価値を保存したい

4

2 に答える 2

1

何かをXMLとして保存する場合は、その兆候を回避する必要があります。そうしないと、XMLが無効になります。

<xml>text</xml>

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

<xml></xml></xml>

これは次のようにする必要があります。

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

マーシャリングを解除すると、再び正しい値になります。

CDATAを使用することもできます

于 2012-04-05T07:04:01.023 に答える
1

私が見つけた答えは包括的ではなかったので、私は自分の経験を共有すると思いました(そして、これがそこにある最も専門的な解決策であるかどうかはまだよくわかりません)。

私たちのプロジェクトでは、maven-jibx-pluginを使用してXSDからPOJOを生成します(通常どおり2回の実行で:1。* .xsd-> binding.xml、次に2. binding.xml-> *。java)。

バリューノードのドキュメントとjibxメーリングリストでのDennisSosnoskiの回答に基づいて、プロジェクトビルドプロセスにxml-maven-pluginを追加しました。POJOを生成する前に、生成されたbinding.xmlにXSLファイルを適用するために使用します。重要なのは、適切な値ノードのスタイル属性の値をテキストからcdataに変更することです。

これまでのところ、エンコーディングの問題は解決されており、次のようなクライアントxmlに戻ることができます。

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

これが誰かの生活を楽にしてくれることを願っています。:)

于 2013-03-07T08:19:41.157 に答える