XML数据中的解组

时间:2011-10-26 13:10:09

标签: java xml jaxb unmarshalling

我有一些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;
}

问题是段落列表中唯一的元素是“第二行”。有谁知道我怎么处理这个?

3 个答案:

答案 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)

您可以使用@XmlAnyElementDomHandler将XML文档的片段保存为String。以下是演示如何执行此操作的完整示例的链接: