歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 如何解析Xml字符串

Android 如何解析Xml字符串

日期:2017/3/1 11:08:58   编辑:Linux編程

xml是種常見的數據交換格式。在java中,解析起來,可能沒有json方便。如何解析呢,請參閱下面的簡單示例:

1、要解析的xml格式如下:

  1. <UpdateResult NeedUpdate="true">
  2. <FileUrl value="http://download.note.com/res/6650fd66-551f-47b5-bcd4-0971c391f896"/>
  3. <CurrentVersion value="0.0.0.1"/>
  4. <WebSite value="http://note.do.com/"/>
  5. </UpdateResult>

在解析之前,將該xml賦值給String變量xmlStr

2、解析UpdateResult的屬性NeedUpdate,並把結果賦值給isNeedUpdate,解析FileUrl的value屬性,並把結果賦值給FileUrl:

  1. XmlPullParser parser = Xml.newPullParser();
  2. parser.setInput(new StringReader(xmlStr));
  3. int event = parser.getEventType();
  4. while (event != XmlPullParser.END_DOCUMENT) {
  5. switch (event) {
  6. case XmlPullParser.START_DOCUMENT:
  7. break;
  8. case XmlPullParser.START_TAG:
  9. if ("UpdateResult".equals(parser.getName())) {
  10. int count = parser.getAttributeCount();
  11. for (int i = 0; i < count; i++) {
  12. String key = parser.getAttributeName(i);
  13. if ("NeedUpdate".equals(key)) {
  14. isNeedUpdate= "true".equals(parser.getAttributeValue(i));
  15. }
  16. }
  17. } else if ("FileUrl".equals(parser.getName())) {
  18. int count = parser.getAttributeCount();
  19. for (int i = 0; i < count; i++) {
  20. String key = parser.getAttributeName(i);
  21. if ("value".equals(key)) {
  22. FileUrl = parser.getAttributeValue(i);
  23. }
  24. }
  25. }
  26. break;
  27. case XmlPullParser.END_TAG:
  28. break;
  29. }
  30. event = parser.next();
  31. }

主要用到類:org.xmlpull.v1.XmlPullParser和java.io.StringReader

Copyright © Linux教程網 All Rights Reserved