我有一些xml数据我试图解组成java对象,其中一个元素包含<br/>
个元素:
<details>
<para>
Line Number One
<br/>
Line Number Two
</para>
</details>
在我的Details java对象中,我有:
class Details {
@XmlElement(name="para")
private List<String> paragraphs;
}
问题是段落列表中唯一的元素是“第二行”。有谁知道我怎么处理这个?
答案 0 :(得分:5)
您可以使用@XmlMixed
表示混合内容,如下所示(请注意,它适用于类本身的内容而不是其元素,因此您需要一个额外的类):
class Details {
@XmlElement(name="para")
private Para para;
...
}
class Para {
@XmlMixed
@XmlAnyElement
private List<Object> paragraphs;
...
}
paragraphs
属性将包含用于文本行的String
和用于XML元素的Element
。
答案 1 :(得分:2)
在这种情况下,XML格式不正确。将整个数据放在CDATA中的标记内以避免此问题。请参阅 - http://www.w3schools.com/xml/xml_cdata.asp
答案 2 :(得分:1)
您可以使用@XmlAnyElement
和DomHandler
将XML文档的片段保存为String
。以下是演示如何执行此操作的完整示例的链接: