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 注释,我只能从绑定操作中得到空字符串“”,因为<p>根据我的理解,JAXB 将元素以“”开头作为要绑定的对象。

有什么建议吗?

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 回答