首页 > 解决方案 > 使用 Kotlin 解析 RSS XML

问题描述

这是我的 Kotlin 数据类。我想解析 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
)

有人可以帮我解析 RSS 吗?例如,https://learningenglish.voanews.com/api/zkm-qem$-o

如果我想获取项目标签下的所有标题标签,你如何编写代码?

标签: androidxmlparsingkotlinxml-parsing

解决方案


RSS-Parser可以帮助你做到这一点。在你的build.gradle

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

如何使用:

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
    }

注意:这似乎适用于英语,但不适用于越南语。


推荐阅读