Android解析XML文件

  给大家分享一下  XmlPullParser 的解析代码。这里我只给了读的代码,也许你会说我太懒了吧,为什么不给写的代码呢?我想在android的开发里,大家保存数据用的是Sqlite吧,哈哈。针对xml的解析多半是用在接收web的数据,您说对吗?

拿去用的时候改改哦,开始Ctrl+C吧。


  1. public class PullXMLReader {
  2.     public static List<XmlObject> readXml() {
  3.         XmlPullParser parser = Xml.newPullParser();
  4.               try {
  5.                           String URL = "你的xml的路径 URL";//http://www.xxx.com/xxx.xml
  6.                           java.net.URL url = new java.net.URL(URL);
  7.                           URLConnection connection = url.openConnection();
  8.                           HttpURLConnection httpConnection = (HttpURLConnection) connection;
  9.                           int responseCode = httpConnection.getResponseCode();
  10.                           if (responseCode == HttpURLConnection.HTTP_OK) {
  11.                                       InputStream inStream = httpConnection.getInputStream();
  12.                                       parser.setInput(inStream, "UTF-8");
  13.                                       int eventType = parser.getEventType();
  14.                                       XmlObject xmlObj = null;
  15.                                       List<XmlObject> objList = null;
  16.                                       while (eventType != XmlPullParser.END_DOCUMENT) {// Xml文档未结束
  17.                                                   switch (eventType) {
  18.                                                       case XmlPullParser.START_DOCUMENT:// Xml文档开始事件,可以进行数据初始化处理
  19.                                                                      objList = new ArrayList<XmlObject>();
  20.                                                                      break;
  21.                                                       case XmlPullParser.START_TAG:// Xml开始元素事件 如:<item>
  22.                                                               /****************************************************************/
  23.                                                               /**
  24.                                                                * XML 格式为
  25.                                                                * <xml_list ver="1.0">
  26.                                                                *                <item id="1" name="name1"/>
  27.                                                                *                <item id="2" name="name2"/>
  28.                                                                *                <item id="3" name="name3"/>
  29.                                                                * </xml_list>
  30.                                                                */
  31.                                                                     String name = parser.getName();
  32.                                                                     if (name.equalsIgnoreCase("item")) {
  33.                                                                                 xmlObj = new XmlObject();
  34.                                                                                 xmlObj.setId(parser.getAttributeValue(0));//得到元素的属性。 0是指取id的值
  35.                                                                                 xmlObj.setName(parser.getAttributeValue(1));//得到元素的属性。 1是指取name的值
  36.                                                                     }
  37.                                                               /****************************************************************/
  38.                                                               /**
  39.                                                                * XML 格式为
  40.                                                                * <xml_list ver="1.0">
  41.                                                                *                <item>
  42.                                                                *                        <id>1</id>
  43.                                                                *                        <name>name-1</name>
  44.                                                                *                </item>
  45.                                                                *                <item>
  46.                                                                *                        <id>2</id>
  47.                                                                *                        <name>name-2</name>
  48.                                                                *                </item>
  49.                                                                * </xml_list>
  50.                                                                */
  51. //                                                                     String name = parser.getName();
  52. //                      if (name.equalsIgnoreCase("item")) {
  53. //                                                                                 xmlObj = new XmlObject();
  54. //                                                                     } else if (name.equalsIgnoreCase("id") && xmlObj != null) {
  55. //                                                                                 xmlObj.setId(parser.nextText());//得到元素的内容
  56. //                                                                     } else if (name.equalsIgnoreCase("name") && xmlObj != null) {
  57. //                                                                                 xmlObj.setName(parser.nextText());//得到元素的内容
  58. //                                                                     }
  59.                                                                             break;
  60.                                                       case XmlPullParser.END_TAG:// Xml结束元素事件 如:</item>
  61.                                                                   if (parser.getName().equalsIgnoreCase("item") && xmlObj != null) {
  62.                                                                               objList.add(xmlObj);
  63.                                                                               xmlObj = null;
  64.                                                                   }
  65.                                                                   break;
  66.                                                  }
  67.                                                  eventType = parser.next();//下一个事件类型
  68.                                      }
  69.                                      inStream.close();
  70.                                      return objList;
  71.                          }
  72.              } catch (Exception e) {
  73.                          e.printStackTrace();
  74.              }
  75.              return null;
  76.     }
  77. }

你可能感兴趣的:(xml,android,exception,String,list,null)