简体   繁体   English

使用 Kotlin 解析 RSS XML

[英]Parse RSS XML with Kotlin

This is my data class of Kotlin.这是我的 Kotlin 数据类。 I'd like to parse RSS but I got a message like 'item' does not have a match in class...我想解析 RSS,但我收到一条消息,如“项目”在课堂上没有匹配项...

@Root(name = "channel", strict = false)
data class ArticleList(
    @ElementList(name = "item", inline = true)
    val articleList: List<Article>
)

@Root(name = "item", strict = false)
data class Article(
    @Element(name="title")
    val title: String
)

Could somebody help me to parse RSS?有人可以帮我解析RSS吗? For example, https://learningenglish.voanews.com/api/zkm-qem$-o例如, https://learningenglish.voanews.com/api/zkm-qem$-o

If I want to get all title tags under item tag, how do you write the code?如果我想获取item标签下的所有title标签,代码怎么写?

RSS-Parser could help you do this. RSS-Parser可以帮助您做到这一点。 In your build.gradle :在你的build.gradle

dependencies {
    implementation 'com.prof18.rssparser:rssparser:3.1.3'
}

How to use:如何使用:

fun fetchRssData() : ArrayList<String> {
        val parser = Parser.Builder()
            .context(this)
            .charset(Charset.forName(StandardCharsets.UTF_8.name()))
            .cacheExpirationMillis(24L * 60L * 60L * 100L) // one day
            .build()

        val titleList = arrayListOf<String>();

        runBlocking {
            launch {
                val chanel = parser.getChannel(url = "https://learningenglish.voanews.com/api/zkm-qem$-o")
                Log.d("MyChanel", chanel.toString())

                for (art in chanel.articles) {
                    titleList.add(art.title!!)
                }
            }
        }

        return titleList
    }

Note: This seems work fine with English but not good in Vietnamese.注意:这对英语似乎很好,但在越南语中不好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM