Android 安卓Kotlin改装&x2B;SimpleXMLConverter元素列表分析不正确

Android 安卓Kotlin改装&x2B;SimpleXMLConverter元素列表分析不正确,android,xml,kotlin,retrofit2,simple-framework,Android,Xml,Kotlin,Retrofit2,Simple Framework,我试图解析一些podcastxml提要,但无法获取所有类别和具有相同名称的其他多个字段 提要示例: FeedChannel.kt @Root(name = "channel", strict = false) open class FeedChannel { @field:Element(name = "title") var mTitle: String? = null @field:Element(name = "link") var mLink: Str

我试图解析一些podcastxml提要,但无法获取所有类别和具有相同名称的其他多个字段

提要示例:

FeedChannel.kt

@Root(name = "channel", strict = false)
open class FeedChannel {

    @field:Element(name = "title")
    var mTitle: String? = null

    @field:Element(name = "link")
    var mLink: String? = null

    @field:Element(name = "subtitle")
    var mSubtitle: String? = null

    @field:Element(name = "author")
    var mAuthor: String? = null

    @field:ElementList(entry = "category", inline = true)
    var mCategories: List<Category>? = null

    @Root(name = "category", strict = false)
    class Category {

        @field:Element(name = "category")
        var category: String? = null
    }
}
@Root(name=“channel”,strict=false)
开放式馈电通道{
@字段:元素(name=“title”)
var mTitle:字符串?=null
@字段:元素(name=“link”)
变量mLink:字符串?=null
@字段:元素(name=“subtitle”)
var mSubtitle:字符串?=null
@字段:元素(name=“author”)
var mAuthor:字符串?=null
@字段:ElementList(entry=“category”,inline=true)
变量McCategories:列表?=null
@Root(name=“category”,strict=false)
类别{
@字段:元素(名称=“类别”)
变量类别:字符串?=null
}
}
但类别列表元素始终为空: 找到了解决方案:

更改了@field:Element字段,并使用字符串代替另一个类类别。感谢@DaveThomas

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

    @field:Element(name = "title")
    var mTitle: String? = null

    @field:Element(name = "link")
    var mLink: String? = null

    @field:Element(name = "subtitle")
    var mSubtitle: String? = null

    @field:Element(name = "author")
    var mAuthor: String? = null

    @field:ElementList(entry = "category", type = String::class, inline = true)
    var mCategories: List<String>? = null

}
@Root(name=“channel”,strict=false)
类馈通道{
@字段:元素(name=“title”)
var mTitle:字符串?=null
@字段:元素(name=“link”)
变量mLink:字符串?=null
@字段:元素(name=“subtitle”)
var mSubtitle:字符串?=null
@字段:元素(name=“author”)
var mAuthor:字符串?=null
@字段:ElementList(entry=“category”,type=String::class,inline=true)
变量McCategories:列表?=null
}

var McCategories:列表?=空值
可能适用于前5种媒体:类别元素在类别类定义中,查看如何说明类别中包含类别
@DaveThomas现在我得到了这个异常:org.simpleframework.xml.core.ValueRequiredException:无法满足@org.simpleframework.xml.ElementList(data=false,empty=true,entry=,inline=true,name=category,required=true,type=void)在第5行的类…model.FeedChannel的字段“mCategories”私有java.util.List…model.FeedChannel.mCategories上,它似乎被那些具有值作为属性的元素阻塞了。旁注:您可以更新您的问题,以包含您正在使用org.simpleframework.xml的信息。这会让熟悉框架的人找到您的问题并帮助您找到解决方案。@DaveThomas我根据您所说的找到了一个解决方案,只是将注释字段从“name”更改为“entry”,并添加“type”字段
如何获得属性,如:@Path(“enclosure”)@param:attribute(name=“url”)var url:String=“”,我收到错误:“原因:org.simpleframework.xml.core.ConstructorException:参数'enclosure[1]/@url'在类中没有匹配项
@Root(name = "channel", strict = false)
open class FeedChannel {

    @field:Element(name = "title")
    var mTitle: String? = null

    @field:Element(name = "link")
    var mLink: String? = null

    @field:Element(name = "subtitle")
    var mSubtitle: String? = null

    @field:Element(name = "author")
    var mAuthor: String? = null

    @field:ElementList(entry = "category", inline = true)
    var mCategories: List<Category>? = null

    @Root(name = "category", strict = false)
    class Category {

        @field:Element(name = "category")
        var category: String? = null
    }
}
@Root(name = "channel", strict = false)
class FeedChannel {

    @field:Element(name = "title")
    var mTitle: String? = null

    @field:Element(name = "link")
    var mLink: String? = null

    @field:Element(name = "subtitle")
    var mSubtitle: String? = null

    @field:Element(name = "author")
    var mAuthor: String? = null

    @field:ElementList(entry = "category", type = String::class, inline = true)
    var mCategories: List<String>? = null

}