在你的代码中,eventType是一个Int类型的变量,但是你在while循环条件中使用了它。while循环的条件需要是一个布尔值,所以你需要将eventTypeXmlPullParser.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报错的问题了

private fun parseXMLWithPullxmlDataString try val factory = XmlPullParserFactorynewInstance val xmlPullParser = factorynewPullParser xmlPullParsersetInputStrin

原文地址: https://www.cveoy.top/t/topic/iGA4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录