Java-使用SimpleXML获取ElementList属性(Android/Reformation)

Java-使用SimpleXML获取ElementList属性(Android/Reformation),java,android,simple-framework,Java,Android,Simple Framework,我试图用SimpleXML解析一个类似这样的XML响应。这与SimpleXML教程页面上显示的示例非常相似 唯一不同的是,我的标记有一个我需要收集的属性,这样我就可以确定是否有多页的结果 我试着用他们的例子,结果就是这样 public class Response { private ArrayList<Record> records; @Element public String message; @Element public

我试图用SimpleXML解析一个类似这样的XML响应。这与SimpleXML教程页面上显示的示例非常相似

唯一不同的是,我的
标记有一个我需要收集的属性,这样我就可以确定是否有多页的结果

我试着用他们的例子,结果就是这样

  public class Response {

    private ArrayList<Record> records;

    @Element
    public String message;

    @Element
    public String code;

    @Element
    public String version;

    @ElementList
    public void setRecords(ArrayList<Record> records) {
        if(records.isEmpty()) {
            throw new IllegalArgumentException("Empty collection");
        }
        this.records = records;
    }

    @ElementList
    public ArrayList<Record> getRecords() {
        return records;
    }


    public class Record {

        @Attribute public String data1;
        @Attribute public String data2;

    }
 }
公共类响应{
私人ArrayList记录;
@元素
公共字符串消息;
@元素
公共字符串代码;
@元素
公共字符串版本;
@元素列表
公共无效集合记录(ArrayList记录){
if(records.isEmpty()){
抛出新的IllegalArgumentException(“空集合”);
}
这个.记录=记录;
}
@元素列表
公共阵列列表getRecords(){
退货记录;
}
公开课记录{
@属性公共字符串data1;
@属性公共字符串data2;
}
}
除了在Records标记中缺少Total属性外,它还能正常工作

但是,无论我怎么做,都无法得到这个标签

我尝试过各种组合,比如创建一个记录类来保存属性和ArrayList,将其作为基本属性放在主对象中,或者在没有任何运气的情况下尝试在主响应对象中使用getter/setter

例如

公共类响应{
@元素
公共字符串消息;
@元素
公共字符串代码;
@元素
公共字符串版本;
@元素
公共记录;
公开课堂记录{
私人ArrayList记录;
@属性
公共字符串总数;
@元素列表
公共无效集合记录(ArrayList记录){
if(records.isEmpty()){
抛出新的IllegalArgumentException(“空集合”);
}
这个.记录=记录;
}
@元素列表
公共阵列列表getRecords(){
退货记录;
}
}
公开课记录{
@属性公共字符串data1;
@属性公共字符串data2;
}
}
我不知道如何创建List对象,并从中获取属性


任何帮助都将不胜感激,我不知道如何使其工作,它似乎应该如此简单,但我显然错过了一些东西。

能够得到一些帮助,这就是有效的方法

@Default(DefaultType.FIELD)
public class Response{

    public String message;

    public String code;

    public String version;

    public Records records;

    public Records getRecords ()
    {
        return records;
    }

    public void setRecords (ArrayList<Record> records)
    {
        this.records.setRecord(records);
    }
}


public class Records
{
    @Attribute
    public String total;

    public ArrayList<Record> records;

    public String getTotal ()
    {
        return total;
    }

    public void setTotal (String total)
    {
        this.total = total;
    }

    @ElementList(inline=true)
    public ArrayList<Record> getRecord ()
    {
        return records;
    }

    @ElementList(inline=true)
    public void setRecord (ArrayList<Record> record)
    {
        this.records = record;
    }

}

 public class Record {

        @Attribute public String data1;
        @Attribute public String data2;

    }
@Default(DefaultType.FIELD)
公众课堂反应{
公共字符串消息;
公共字符串代码;
公共字符串版本;
公共记录;
公共记录
{
退货记录;
}
公共无效集合记录(ArrayList记录)
{
this.records.setRecord(记录);
}
}
公开课堂记录
{
@属性
公共字符串总数;
公共阵列列表记录;
公共字符串getTotal()
{
返回总数;
}
公共void集合总计(字符串总计)
{
这个.总计=总计;
}
@ElementList(inline=true)
公共ArrayList getRecord()
{
退货记录;
}
@ElementList(inline=true)
公共无效集合记录(ArrayList记录)
{
this.records=记录;
}
}
公开课记录{
@属性公共字符串data1;
@属性公共字符串data2;
}

Oops,忘了这么做!它不会让我一发布就标记它。谢谢你的提醒
 public class Response {

    @Element
    public String message;

    @Element
    public String code;

    @Element
    public String version;

    @Element
    public Records records;


    public class Records{

        private ArrayList<Record> records;

        @Attribute 
        public String total;

        @ElementList
        public void setRecords(ArrayList<Record> records) {
            if(records.isEmpty()) {
                throw new IllegalArgumentException("Empty collection");
            }
            this.records = records;
        }

        @ElementList
        public ArrayList<Record> getRecords() {
            return records;
        }
    }

    public class Record {
        @Attribute public String data1;
        @Attribute public String data2;
    }
}
@Default(DefaultType.FIELD)
public class Response{

    public String message;

    public String code;

    public String version;

    public Records records;

    public Records getRecords ()
    {
        return records;
    }

    public void setRecords (ArrayList<Record> records)
    {
        this.records.setRecord(records);
    }
}


public class Records
{
    @Attribute
    public String total;

    public ArrayList<Record> records;

    public String getTotal ()
    {
        return total;
    }

    public void setTotal (String total)
    {
        this.total = total;
    }

    @ElementList(inline=true)
    public ArrayList<Record> getRecord ()
    {
        return records;
    }

    @ElementList(inline=true)
    public void setRecord (ArrayList<Record> record)
    {
        this.records = record;
    }

}

 public class Record {

        @Attribute public String data1;
        @Attribute public String data2;

    }