android - 使用 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
如果我想获取项目标签下的所有标题标签,你如何编写代码?
解决方案
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
}
注意:这似乎适用于英语,但不适用于越南语。
推荐阅读
- python - 如何取包含元组的 2 个或多个列表的交集?
- struts2 - 什么是strut 1逻辑的strut 2等价物:迭代标签属性属性
- matrix - Matrix vnext vCard 请求
- java - 在 Java 中正确比较 code_verifier 和 code_challenge
- postgresql - PostgreSQL 为没有 pg_toast 的查询回答“pg_toast 不存在”
- java - Java 进程执行 n 秒并打印输出
- c# - 将 DataReader 信息绑定到列表框 WPF
- reactjs - 将道具保存到状态以强制更新?
- python - 为什么列表推导会影响外部变量的值?
- android - React Native APK 发布后在设备上不断崩溃,但在构建时它工作正常