Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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
Android 忽略SimpleXML路径注释_Android_Xml_Xpath_Kotlin_Simple Framework - Fatal编程技术网

Android 忽略SimpleXML路径注释

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”

我想知道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”,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实现工作得完美无缺。