如何从这种XML格式解析XML元素数组“ echeance”:
<data>
<code>353</code>
<city>Ville</city>
<echeance ech="3">
<subData>45</subData>
</echeance>
<echeance ech="6">
<subData>45</subData>
</echeance>
<echeance ech="9">
<subData>45</subData>
</echeance>
</data>
我希望使用 SimpleXmlConverterFactory
在包含“ Echeance”对象数组的Data对象中解析此数据现在,我有这个kotlin代码:
data class Data(val ville :String, val code :Int) {
@get:Element(name="city")
lateinit var city :String
@get:Element(name="code") var remoteCode :Int = -1
@get:ElementArray(name="echeance") lateinit var echeances :Array<Echeance>
}
class Echeance {
@get:Attribute(name="ech") var value :Int = 0
@get:Element(name="subData") var value :Int = 0
}
不幸的是,我无法更改XML格式,例如将“ echance”节点嵌入到父“ echeances”节点中。
谢谢。
答案 0 :(得分:0)
我找到了答案!
我必须将我的Echeance班级注释为
@Root(name = "echeance")
然后删除我的@ElementList对应项的名称属性,并将其标记为内联
@field:ElementList(inline = true, required = false) lateinit var echeances :List<Echeance>
完整代码:
data class Data(val ville :String, val code :Int) {
@field:Element(name="city")
lateinit var city :String
@field:Element(name="code") var remoteCode :Int = -1
@field:ElementList(inline = true, required = false) lateinit var echeances :List<Echeance>
}
@Root(name = "echeance")
class Echeance {
@field:Attribute(name="ech") var value :Int = 0
@field:Element(name="subData") var value :Int = 0
}