XML.kt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. val factory = XmlPullParserFactory.newInstance()
  2. factory.isNamespaceAware = true
  3. val parser = factory.newPullParser()
  4. parser.setInput(StringReader(result))
  5. var cityName = ""
  6. var topTag = ""
  7. var subTag = ""
  8. var dt_txt = ""
  9. var description: String = ""
  10. var icon: String = ""
  11. while (parser.eventType != XmlPullParser.END_DOCUMENT) {
  12. when (parser.eventType) {
  13. XmlPullParser.START_TAG -> {
  14. when (parser.name) {
  15. "location", "forecast" -> topTag = parser.name
  16. "name" -> {
  17. if(topTag=="location") cityName = parser.nextText()
  18. }
  19. "time" -> {
  20. if (topTag=="forecast") {
  21. subTag = parser.name
  22. dt_txt = parser.getAttributeValue(null, "from").toString()
  23. }
  24. }
  25. "symbol" -> {
  26. if(subTag=="time"){
  27. description = parser.getAttributeValue(null, "name").toString()
  28. icon = parser.getAttributeValue(null, "var").toString()
  29. }
  30. }
  31. }
  32. }
  33. XmlPullParser.END_TAG -> {
  34. when (parser.name) {
  35. "time" -> {
  36. weatherList.add(
  37. Weather(
  38. 0,
  39. 0.0,
  40. 0,
  41. icon,
  42. description,
  43. 0.0,
  44. 0,
  45. dt_txt
  46. )
  47. )
  48. }
  49. }
  50. }
  51. }
  52. parser.next()
  53. }