入职一家新公司,后台已经写好了!数据格式是XML
自己比较喜欢RxJava+Retrofit。
baidu一下Retrofit可以配合SimpleXml使用解析。
依赖:
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'io.reactivex.rxjava2:rxjava:2.1.2'
implementation('com.squareup.retrofit2:converter-simplexml:2.1.0') {
exclude group: 'xpp3', module: 'xpp3'
exclude group: 'stax', module: 'stax-api'
exclude group: 'stax', module: 'stax'
}
先看下Xml:
xml数据源.PNG
这是一个简单的xml数据
xml解析需要一层一层解析且不能有内部类(baidu上说的)
请看我如何一层一层解析!~~
xml解析1.PNG
xml解析2.PNG
xml解析3.PNG
我就老老实实一层嵌套一层,虽然类多,可是用起来没问题!
@Root是外层的标签,strict = false 是否精确控制
@ElementList List
@Element 属性
具体的话可以看图自我解析!
最终要的一点!!!
请看这里!!!!!!!!!!!!
如果数据可能是空的一定要按照以下写法
@Element(name = "GuestName",required = false)
private String guestName;
不然解析会出错的
因为默认属性是精确匹配!!!