xml解析(一) XmlPullParser的使用

前端之家收集整理的这篇文章主要介绍了xml解析(一) XmlPullParser的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

XmlPullParser是android自带的xml解析器

  1. public static ArrayList<TvUrl> getChannelsData(InputStream is) {
  2. ArrayList<TvUrl> list = null;
  3. TvUrl tvurl = null;
  4. XmlPullParserFactory pullFactory;
  5. try {
  6. pullFactory = XmlPullParserFactory.newInstance();
  7. XmlPullParser xmlPullParser = pullFactory.newPullParser();
  8. if(is == null)
  9. {
  10. return null;
  11. }
  12. xmlPullParser.setInput(is,"UTF-8");
  13. int eventType = xmlPullParser.getEventType();
  14. while (eventType != XmlPullParser.END_DOCUMENT) {
  15. String tagName = xmlPullParser.getName();
  16. switch (eventType) {
  17. case XmlPullParser.START_DOCUMENT:
  18. list = new ArrayList<TvUrl>();
  19. break;
  20. case XmlPullParser.START_TAG:
  21. if("tv".equals(tagName))
  22. {
  23. tvurl = new TvUrl();
  24. }
  25. else if ("channelid".equals(tagName)) {
  26. tvurl.setid(xmlPullParser.nextText());
  27. // Log.i(tvurl.getid());
  28. }
  29. else if("name".equals(tagName))
  30. {
  31. tvurl.setName(xmlPullParser.nextText());
  32. // Log.i(tvurl.getName());
  33. }
  34. else if("url".equals(tagName))
  35. {
  36. String str = xmlPullParser.nextText();
  37. tvurl.AddUrl(str);
  38. // Log.i(str);
  39. }
  40. break;
  41. case XmlPullParser.END_TAG:
  42. if ("tv".equals(tagName) && tvurl != null) {
  43. list.add(tvurl);
  44. }
  45. break;
  46. default:
  47. break;
  48. }
  49. eventType = xmlPullParser.next();
  50. }
  51.  
  52. } catch (XmlPullParserException e) {
  53. // TODO Auto-generated catch block
  54. e.printStackTrace();
  55. } catch (IOException e) {
  56. // TODO Auto-generated catch block
  57. e.printStackTrace();
  58. }
  59. return list;
  60. }


xmlPullParser.nextText() 是解析xml某个标签的值。

xmlPullParser.getAttributeValue(0) 是解析xml某个标签下中属性值,0代表位置为0的属性

猜你在找的XML相关文章