Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 简单XML序列化程序无法满足元素_Java_Android_Xml_Parsing_Serialization - Fatal编程技术网

Java 简单XML序列化程序无法满足元素

Java 简单XML序列化程序无法满足元素,java,android,xml,parsing,serialization,Java,Android,Xml,Parsing,Serialization,我不熟悉这个简单的XML序列化程序,我想解析IGN新闻提要。问题是我得到了以下错误: 第2行org.android.entities.Channel类的字段“description”private java.lang.String org.android.entities.Channel.description上无法满足@org.simpleframework.xml.Element(data=true,name=description,required=true,type=void) xml

我不熟悉这个简单的XML序列化程序,我想解析IGN新闻提要。问题是我得到了以下错误:

第2行org.android.entities.Channel类的字段“description”private java.lang.String org.android.entities.Channel.description上无法满足@org.simpleframework.xml.Element(data=true,name=description,required=true,type=void) xml看起来像这样:


全部签名
关于电子游戏、电影、电视、科技和漫画的最新新闻、评论和视频
http://pipes.yahoo.com/pipes/pipe.info?_id=5985e93c1e0bc73949d56890f4462756
--这部动画片包括《少年正义》和《绿灯侠》:上周末的这部动画片,让粉丝们对这一突然的、无法解释的举动感到困惑(然后愤怒)。但似乎是最后一刻才做出的决定意味着原定于周六播出的剧集仍然可以在iTunes上合法购买(可能是因为有人忘了把它们也拉出来)。这意味着在另一个年轻的司法中断开始之前,我们要为你们做最后一次审查…

]> http://feeds.ign.com/~r/ign/articles/~3/ts68IIyx4XI/young justice before the dawn review ...
所以解析器说问题出在“channel”标记中的“description”标记中。我真的不知道我做错了什么。这是我的频道课程:

package org.android.entities;
导入java.io.Serializable;
导入java.util.List;
导入org.simpleframework.xml.Element;
导入org.simpleframework.xml.ElementList;
导入org.simpleframework.xml.Root;
@根公共类通道实现可序列化{
/**
* 
*/
私有静态最终长SerialVersionId=-6866019353714061968L;
公共频道(){
//TODO自动生成的构造函数存根
}
@元素
私有字符串标题;
@元素
私有字符串描述;
@元素
私有字符串链接;
@元素
私有字符串发布日期;
@元素列表
私人清单项目;
公共字符串getTitle(){
返回标题;
}
公共无效集合标题(字符串标题){
this.title=标题;
}
公共字符串getDescription(){
返回说明;
}
公共void集合描述(字符串描述){
this.description=描述;
}
公共字符串getLink(){
返回链接;
}
公共无效设置链接(字符串链接){
this.link=link;
}
公共字符串getPubDate(){
返回日期;
}
public void setPubDate(字符串pubDate){
this.pubDate=pubDate;
}
公共列表getNews(){
退货项目;
}
公共新闻(列表新闻){
此项=新闻;
}
}
这就是我执行反序列化的方法:

private void getFromCache() {
        Serializer serializer = new Persister();
        try {
            data = serializer.read(Channel.class, destinationFile, false);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
            e.printStackTrace();
        }
    }

现在回答我自己的问题。我玩了一点,问题就像Nathan Villaescusa建议忽略RSS标签一样。看起来您必须创建一个类(在本例中是RSS类,它只有一个名为Channel的元素),该类必须是xml文件的根元素。我没有找到一个可以忽略该元素并直接跳转到通道标记的解决方案。感谢您的帮助:)

您是否考虑到整个内容都包装在一个
标记中?您可以添加进行反序列化的代码吗?不,我忽略了RSS标记。这是一个来自IGN的提要…它在这个。。。我将此提要保存在设备上的一个文件中,然后尝试将其反序列化为对象。