Android 忽略SimpleXML路径注释
我想知道simplexml中的@Path注释是如何在Android上为kotlin工作的(如果它能工作的话更好) 给定的XML将演示该问题Android 忽略SimpleXML路径注释,android,xml,xpath,kotlin,simple-framework,Android,Xml,Xpath,Kotlin,Simple Framework,我想知道simplexml中的@Path注释是如何在Android上为kotlin工作的(如果它能工作的话更好) 给定的XML将演示该问题 从未 总是 1. 1. 假的 2. 假的 3. 假的 127 还有这些东西 @Root(name=“start”,strict=false) 数据类Baseobj构造函数( @字段:ElementList(name=“testlist”,inline=true,required=false) @参数:ElementList(name=“testlist”
从未
总是
1.
1.
假的
2.
假的
3.
假的
127
还有这些东西
@Root(name=“start”,strict=false)
数据类Baseobj构造函数(
@字段:ElementList(name=“testlist”,inline=true,required=false)
@参数:ElementList(name=“testlist”,inline=true,required=false)
@路径(“第一级/第二级”)
var testlist:List?=listOf(),
@字段:元素(name=“testelement”,必需=false)
@参数:元素(name=“testelement”,必需=false)
@路径(“第一级/第二级”)
var testelement:字符串?=null,
@路径(“第一级/第二级”)
@字段:元素(name=“一”,必选=false)
@参数:元素(name=“one”,必需=false)
变量一:字符串?=null
)
对应的类
@Root(strict=false,name=“testlist”)
数据类testlist构造函数(
@字段:元素(必需=false,name=“title”)
@参数:元素(必需=false,name=“title”)
变量标题:字符串?=null,
@字段:元素(必需=false,name=“active”)
@参数:元素(必需=false,name=“active”)
变量活动:字符串?=null
)
通过测试
@测试
有趣的应该是_ParseTestXML(){
val serializer=Persister()
val stream=javaClass.getResourceAsStream(“/raw/test.xml”)
val base=serializer.read(Baseobj::class.java,stream)
println(“我们在这里:${base.testelement}${base.one}”)
}
将打印出“我们在这里:null从不”
,这不是预期的行为,或者至少不是期望的行为。SimpleXML包含在改装包中
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-jackson:2.4.0'
implementation('com.squareup.retrofit2:converter-simplexml:2.4.0') {
exclude group: 'stax', module: 'stax-api'
exclude group: 'stax', module: 'stax'
exclude group: 'xpp3', module: 'xpp3'
}
在我当前的项目中,xml要复杂得多,对象结构不应该包括包装对象。尽管我知道存在转换器,但我希望有一个基于XPath用法的解决方案
先谢谢你
Michael简单解决方案:
@field:Path("firstlevel/secondlevel")
@param:Path("firstlevel/secondlevel")
这声明了基于java的framesworks的注释如果用java声明这些类,结果会发生变化吗?是的,java实现工作得完美无缺。