【问题标题】:Converting a Java Array List into an XML string将 Java 数组列表转换为 XML 字符串
【发布时间】:2016-03-12 21:48:46
【问题描述】:

在我的 servlet (getEmployee) 中,我创建我的 dao (EmployeeDAO) 的一个实例,然后创建一个空数组列表 (arrayList) 并使用我的 dao (getTheEmployees) 中的方法填充它.

我要做的是在我的 servlet 的 doGet 中,获取这个数组列表并将内容转换为 xml 字符串。然后,我将在我的 jsp 页面中获取它。我知道我需要使用 JAXB 来转换为 xml 字符串,但我无法让它工作。

有没有简单的方法来做到这一点?

我正在使用此代码:

    JAXBContext jc = JAXBContext.newInstance(Employee.class);
    Marshaller mars = jc.createMarshaller();    
    mars.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
    StringWriter sw = new StringWriter();
    mars.marshal(arrayList, sw);
    String xmlString = sw.toString();

我得到的只是以下错误 - java.lang.Thread.run(Unknown Source) javax.xml.bind.JAXBException

【问题讨论】:

  • 为什么不能让 JAXB 正常工作?
  • 添加解释代码 - @bdavies6086

标签: java xml jsp model-view-controller jaxb


【解决方案1】:

这就是你有问题的地方:

ArrayList arrayList = ...;
mars.marshal(arrayList, sw);

ArrayList(或 List 或 Collection)永远不能充当要编组的内容树的根:它会产生一系列 XML 元素(由列表元素产生),这不是有效的 XML文件。

很可能,您必须定义一个

class Root {
    List<X> arrayList = ...;
}

并由此创建一个对象,将列表作为其字段,并编组此。

如果这不符合您的要求,您必须提供所需的 XML 示例,以及列表元素的 Java 代码,并说明它们之间的关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多