使用JAXB,在Java中编组嵌套元素

时间:2019-02-20 06:08:57

标签: java xml spring jaxb marshalling

我想获得一个XML结果,如下所示,该结果使用JAXB获取Java对象。

<Mall>
  <ProductInfo>
     <Product>
       <name>chair</name>
       <price>150</price>
     </Product>
 </ProductInfo>
</Mall>

要获得此结果,我制作了3个Java类

  1. 定义XmlRootElementXmlElement
  2. 产品的组成部分(getter / setter)
  3. 插入组件值的主类

通过这种方式,我只能使用产品组件的XmlRootElementXmlElement进行3个深度。

因此,我需要再深入一点。 我尝试使用XmlElementWrapper来增加深度,但是出现错误,因为它不是收集属性...

请帮助我解决此问题...

1 个答案:

答案 0 :(得分:0)

下面是应该起作用的类结构

@XmlRootElement (name = "mall")
public class Mall {
    Mall(){  }

    @XmlElement(name="ProductInfo")
    private ProductInfo info; // must create getter and setter
    }
}

public class ProductInfo {  // you should be missing this
    ProductInfo(){
    }

    @XmlElement(name="Product")
    private List<Product> info; // must create getter and setter
    }
}

public class Product {
    Product(){
    }

    @XmlElement(name="name")
    private ProductInfo info; // must create getter and setter

    @XmlElement(name="price")
    private ProductInfo info; // must create getter and setter

    }
}