Java Can';t读取rss XML,使用简单的XML和改进

Java Can';t读取rss XML,使用简单的XML和改进,java,android,retrofit,pojo,simple-framework,Java,Android,Retrofit,Pojo,Simple Framework,我已经搜索了很多,但是我不能将我的XML分配给我的类,并且在尝试反序列化XML时,我从改装中得到了一个错误 这是我从接口调用的XML(仅第一项): 此外,我还创建了一些模型类来承载XML中的标记,我省略了getter: @Root(name="rss", strict = false) public class Rss { @Element(name="channel") private Channel channel; } @Root(name = "item", st

我已经搜索了很多,但是我不能将我的XML分配给我的类,并且在尝试反序列化XML时,我从改装中得到了一个错误

这是我从接口调用的XML(仅第一项):

此外,我还创建了一些模型类来承载XML中的标记,我省略了getter:

@Root(name="rss", strict = false)
public class Rss {

     @Element(name="channel")
     private Channel channel;

}
@Root(name = "item", strict = false)
public class Item {

@Element(name = "title")
private String title;
@Element(name = "link")
private String link;
@Element(name = "comments")
private String comments;
@Element(name = "pubDate")
private String pubDate;
}

@Root(name="channel", strict = false)
public class Channel  {

@ElementList(name="item",inline = true)
private ArrayList<Item> items;
}
因此,我从改装中得出以下错误:

org.simpleframework.xml.core.ValueRequiredException:无法满足类Model.Channel第9行的字段“items”私有java.util.ArrayList Model.Channel.items上的@org.simpleframework.xml.ElementList(data=false,empty=true,entry=,inline=true,name=item,required=true,type=void)


我到处都搜索过,我认为我的实现是正确的,但是我找不到错误,我已经多次更改了我的模型类,并且使用了来自web的POJO生成器,但是我仍然无法修复这个错误。请帮忙!谢谢大家!

最后,我改变了我的回拨方式,它成功了。我必须在回调中使用模型类Rss,例如:

public interface ApiService {
     @GET("/?feed=single_gallery_feed")
     void getGadgets(@Query("paged")int page, Callback<Rss> gadgetsCallback);
}

如果我想得到
标签,我应该怎么做?你应该使用名称空间标签注释,在名称空间内你应该使用内容!如果变量的名称与编码的名称不同,则还应使用标记注释名称,该名称将等于编码的属性。谢谢,您还可以发布一个代码片段。我对
名称空间
注释有点困惑。我尝试过这样做:
@Namespace(prefix=“content”)公共字符串编码但它不起作用。我还尝试用一个名为
body
的字段注释一个类
内容
,该字段用
@元素(name=“encoded”)注释
但也不起作用。没关系,我找到了问题的答案,POJO类可以用
名称空间列表
进行注释,该列表将包含名称空间列表。POJO字段使用
@元素
进行注释。例如,对于我关于获取
的问题,用
@名称空间(前缀=“内容”,引用=”http://purl.org/rss/1.0/modules/content/”
,然后用
@Element(name=“encoded”)
public class RestClient {

private ApiService apiService;

public RestClient(){
    RestAdapter restAdapter = new RestAdapter.Builder()
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .setClient(new OkClient(new OkHttpClient()))
            .setEndpoint("http://flow.com")
            .setConverter(new SimpleXMLConverter())
            .build();

    apiService = restAdapter.create(ApiService.class);
}

public ApiService getApiService(){
    return apiService;
}
}
@Root(name="rss", strict = false)
public class Rss {

     @Element(name="channel")
     private Channel channel;

}
@Root(name = "item", strict = false)
public class Item {

@Element(name = "title")
private String title;
@Element(name = "link")
private String link;
@Element(name = "comments")
private String comments;
@Element(name = "pubDate")
private String pubDate;
}

@Root(name="channel", strict = false)
public class Channel  {

@ElementList(name="item",inline = true)
private ArrayList<Item> items;
}
public class MainActivity extends AppCompatActivity {

private ArrayList<Item> mList;
private Button pagerButton;
private int page = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    pagerButton = (Button)findViewById(R.id.pager);
    pagerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            RestClient restClient = new RestClient();
            Callback<Channel> callback = new Callback<Channel>() {
                @Override
                public void success(Channel gadgets, Response response) {
                    mList = gadgets.getItems();
                }

                @Override
                public void failure(RetrofitError error) {
                    Log.d("billy",error.getLocalizedMessage());
                }
            };
            restClient.getApiService().getGadgets(page,callback);
                    page++;
        }
    });

    if(mList != null) {
        for(int i = 0; i < mList.size();i++) {
            //mList = mItem.getGadgets();
            Log.d("billy", "Item : " + String.valueOf(i));
            Log.d("billy", "Title: " + mList.get(i).getTitle());
            Log.d("billy", "PubDate: " + mList.get(i).getPubDate());
            Log.d("billy", "ImageURL: " + mList.get(i).getLink());
             Log.d("billy","-------------------------------------------------------------------- ");
        }
    }

}
}
public interface ApiService {
     @GET("/?feed=single_gallery_feed")
     void getGadgets(@Query("paged")int page, Callback<Rss> gadgetsCallback);
}
RestClient restClient = new RestClient();
        Callback callback = new Callback() {
            @Override
            public void success(Object o, Response response) {
                Categories_ = (Categories)o;
            }

            @Override
            public void failure(RetrofitError error) {
                Toast toast = Toast.makeText(getApplication(), "Something went wrong!!", Toast.LENGTH_SHORT);
                toast.show();
            }
        };
        restClient.getApiService().getCategories(callback);