1

XML コンテンツを文字列としてフィールドにバインドしたいと考えています。私のxmlは次のようになります。

<sample>
    <content>
         <p>here is content <b>with bold</b></p>
    </content>
</sample>

次のドメイン オブジェクトにバインドする必要があります。

@Entity
@Table(name="news_table")
@XmlRootElement
class Sample {
     @XmlElement(name="content")
     @Column(name="news_content")
     private String content; 
}

アンマーシャリング後、<p>フォーマットされたテキストを HTML タグで保持するために、文字列型で始まるコンテンツをバインドしたいので、次のようにします。

System.out.println(sample.getContent()); 

次のものを提供する必要があります。

> "<p>here is content <b>with bold</b></p>"

@XmlElement アノテーションを使用すると、バインディング操作から空の文字列 "" のみが返されます。これは、JAXB が " <p>" で始まる要素を、私の理解によるとバインドされるオブジェクトとして認識するためです。

なにか提案を ?

4

2 に答える 2

2

@XmlAnyElementカスタムで注釈を使用してみてくださいDomHandlerここで例を見つけることができます。

于 2012-05-31T14:01:57.123 に答える
2

xml ファイルの内容を変更するオプションの場合は、<and をエスケープするだけ>です。その後、JAXBはそれをうまく処理しgetContent()、Javaで呼び出すときに正しいhtml文字列も取得します。

エスケープされたコンテンツを含む xml ファイルは次のとおりです。

<sample>
 <content>&lt;p&gt;here is content &lt;b&gt;with bold&lt;/b&gt;&lt;/p&gt;</content>
</sample>
于 2012-05-31T14:23:08.720 に答える