private fun parseXMLWithPullxmlDataString try val factory = XmlPullParserFactorynewInstance val xmlPullParser = factorynewPullParser xmlPullParsersetInputStrin
在你的代码中,eventType是一个Int类型的变量,但是你在while循环条件中使用了它。while循环的条件需要是一个布尔值,所以你需要将eventType与XmlPullParser.END_DOCUMENT进行比较来得到一个布尔值。修改你的代码如下:
private fun parseXMLWithPull(xmlData:String){
try {
val factory = XmlPullParserFactory.newInstance()
val xmlPullParser = factory.newPullParser()
xmlPullParser.setInput(StringReader(xmlData))
var eventType = xmlPullParser.eventType
var id = ""
var name = ""
var version = ""
while (eventType!=XmlPullParser.END_DOCUMENT){
val nodeName=xmlPullParser.name
when (eventType) {
XmlPullParser.START_TAG -> {
when (nodeName) {
"id" -> id = xmlPullParser.nextText()
"name" -> name = xmlPullParser.nextText()
"version" -> version = xmlPullParser.nextText()
}
}
XmlPullParser.END_TAG -> {
if ("app" == nodeName) {
Log.d("MainActivity", "id is $id")
Log.d("MainActivity", "name is $name")
Log.d("MainActivity", "version is $version")
}
}
}
eventType = xmlPullParser.next()
}
}catch (e:Exception){
e.printStackTrace()
}
}
这样就可以解决eventType报错的问题了
原文地址: https://www.cveoy.top/t/topic/iGA4 著作权归作者所有。请勿转载和采集!