0

JAXBContext を使用して XML 文字列をアンマーシャリングしています。しかし、文字列のタグ内に「&」文字が含まれていると、コードが失敗します。しかし、その値をそのまま保持する必要があります。

これどうやってするの?

4

2 に答える 2

1

コメントの応答に基づいて、「xml」のようなものがあります

<category>Play & Boy</category>

これはxml ではありません。xml の規則では、この位置にエスケープされていない「&」文字を使用することは禁止されています。

そのような「xml」を次のように変更する必要があります

<category>Play &amp; Boy</category>

ソース xml で、整形式の xml になるようにします。

この整形式でない xml のプリプロセッサで「&」を「&」としてエンコードすることは可能ですが、その前処理コードを自分で記述し、既に一部である「&」文字をエスケープすることに注意する必要があります。&amp;またはなどのエンコーディングの 、および&lt;に変換したくないためです。&amp;amp;&amp;lt;

それができるのであれば、この xml のサプライヤーに整形式の xml を提供してもらうほうがよいでしょう。

于 2012-11-07T15:58:00.620 に答える
1

あなたの質問には2つの可能性があります:

  1. &: の前後のすべてのスペースを削除すると<category>Play&Boy</category>うまくいくはずです。
  2. さらに良い解決策: <category><![CDATA[Play & Boy]]></category>「Play & Boy」としてアンマーシャリングされます。
于 2013-03-27T13:45:48.933 に答える