gpt4 book ai didi

java - 解码 XML Java JAXB

转载 作者:行者123 更新时间:2023-11-30 05:59:49 26 4
gpt4 key购买 nike

XML 是:

<?xml version="1.0" encoding="UTF-8"?><products>
<product>

<imagesurl>
<imageurl><![CDATA[http://...]]></imageurl>
<imageurl><![CDATA[http://...]]></imageurl>
</imagesurl>

</product>
</products>

然后我有3个类要解析XML :

main是:

@XmlRootElement(name = "products")
public class XmlModelRoot {

private ArrayList<ProductModel> productModels;

public ArrayList<ProductModel> getProductModels() {
return productModels;
}

@XmlElement(name = "product")
public void setProductModels(ArrayList<ProductModel> productModels) {
this.productModels = productModels;
}


}

Product class是:

@XmlRootElement(name = "product")
public class ProductModel {
private ArrayList<ImageUrlModel> imagesUrlModels;
public ArrayList<ImageUrlModel> getImagesUrlModels() {
return imagesUrlModels;
}

@XmlElement(name = "imagesurl")
public void setImagesUrlModels(ArrayList<ImageUrlModel> imagesUrlModels) {
this.imagesUrlModels = imagesUrlModels;
}
}

最后我有URL列表的类:

@XmlRootElement(name = "imagesurl")
public class ImageUrlModel {

private String imageurl;

public String getImageurl() {
return imageurl;
}

@XmlElement(name = "imagurl")
public void setImageurl(String imageurl) {
this.imageurl = imageurl;
}
}

我的问题是,我应该收到 ArrayList<ImageUrlModel>最后有 2 个 url,但无论我有多少个 imageurl 标签,ArrayList<ImageUrlModel> 的大小列表只有 1 个,并且只能访问最后一个标签。

我应该更改什么才能将所有 imageurl 放在 ArrayList<ImageUrlModel> 中,在本例中为 ImageUrlModel.size()应该是2 .

最佳答案

您可以将 ProductModel POJO 重新设计为以下类:

@XmlAccessorType(XmlAccessType.FIELD)
public class ProductModel {

@XmlElementWrapper(name="imagesurl")
@XmlElement(name = "imageurl")
private ArrayList<String> imageurl;

public ArrayList<String> getImagesUrlModels() {
return imageurl;
}

public void setImagesUrlModels(ArrayList<String> imagesUrlModels) {
this.imageurl = imagesUrlModels;
}
}

关于java - 解码 XML Java JAXB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52455362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com