Недавно у меня была задача обработать ответ в формате xml. Я попытался решить проблему, используя модернизацию и SimpleXmlConverterFactory. Подскажите пожалуйста как решить проблему или какую альтернативу использовать.
class App : Application() {
lateinit var api : Api
override fun onCreate() {
super.onCreate()
val retrofit = Retrofit.Builder()
.baseUrl("http://www.nbrb.by/Services/")
.addConverterFactory(SimpleXmlConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
api = retrofit.create(Api::class.java)
}
}
@Root(name="DailyExRates")
class Сurrency (@ElementList val currencyItems: List<CurrencyItem>)
@Element(name="Currency")
class CurrencyItem (@Element(name="NumCode") val numCode: Int,
@Element(name="CharCode") val charCode: String,
@Element(name="Scale") val scale: Int,
@Element(name="Name") val name: String,
@Element(name="Rate") val rate: Double)
interface Api {
@GET("XmlExRates.aspx?ondate=4.5.2019")
fun getCurrency() : Observable<Call<Currency>>
}
and my dependencies
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
implementation ('com.squareup.retrofit2:converter-simplexml:2.5.0', {
exclude group: 'xpp3', module: 'xpp3'
exclude group: 'stax', module: 'stax-api'
exclude group: 'stax', module: 'stax'
})