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;
}
}
我的问题是,我应该收到带有至少2个URL的
ArrayList<ImageUrlModel>
,但是无论我有多少个imageurl标签,ArrayList<ImageUrlModel>
列表的大小仅为1,并且只能访问最后一个标签。我应该更改为在
ArrayList<ImageUrlModel>
中具有所有imageurl,在这种情况下,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;
}
}