Android解析XML文件

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

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

 

public class PullXMLReader {

    public static List<XmlObject> readXml() {

        XmlPullParser parser = Xml.newPullParser();

              try {

                          String URL = "你的xml的路径 URL";//http://www.xxx.com/xxx.xml

                          java.net.URL url = new java.net.URL(URL);

                          URLConnection connection = url.openConnection();

                          HttpURLConnection httpConnection = (HttpURLConnection) connection;

                          int responseCode = httpConnection.getResponseCode();

                          if (responseCode == HttpURLConnection.HTTP_OK) {

                                      InputStream inStream = httpConnection.getInputStream();

                                      parser.setInput(inStream, "UTF-8");

                                      int eventType = parser.getEventType();

                                      XmlObject xmlObj = null;

                                      List<XmlObject> objList = null;

                                      while (eventType != XmlPullParser.END_DOCUMENT) {// Xml文档未结束

                                                  switch (eventType) {

                                                      case XmlPullParser.START_DOCUMENT:// Xml文档开始事件,可以进行数据初始化处理

                                                                     objList = new ArrayList<XmlObject>();

                                                                     break;

                                                      case XmlPullParser.START_TAG:// Xml开始元素事件 如:<item>

                                                              /****************************************************************/

                                                              /**

                                                               * XML 格式为

                                                               * <xml_list ver="1.0">

                                                               *                <item id="1" name="name1"/>

                                                               *                <item id="2" name="name2"/>

                                                               *                <item id="3" name="name3"/>

                                                               * </xml_list>

                                                               */

                                                                    String name = parser.getName();

                                                                    if (name.equalsIgnoreCase("item")) {

                                                                                xmlObj = new XmlObject();

                                                                                xmlObj.setId(parser.getAttributeValue(0));//得到元素的属性。 0是指取id的值

                                                                                xmlObj.setName(parser.getAttributeValue(1));//得到元素的属性。 1是指取name的值

                                                                    }

                                                              /****************************************************************/

                                                              /**

                                                               * XML 格式为

                                                               * <xml_list ver="1.0">

                                                               *                <item>

                                                               *                        <id>1</id>

                                                               *                        <name>name-1</name>

                                                               *                </item>

                                                               *                <item>

                                                               *                        <id>2</id>

                                                               *                        <name>name-2</name>

                                                               *                </item>

                                                               * </xml_list>

                                                               */

//                                                                     String name = parser.getName();

//                      if (name.equalsIgnoreCase("item")) {

//                                                                                 xmlObj = new XmlObject();

//                                                                     } else if (name.equalsIgnoreCase("id") && xmlObj != null) {

//                                                                                 xmlObj.setId(parser.nextText());//得到元素的内容

//                                                                     } else if (name.equalsIgnoreCase("name") && xmlObj != null) {

//                                                                                 xmlObj.setName(parser.nextText());//得到元素的内容

//                                                                     }

                                                                            break;

                                                      case XmlPullParser.END_TAG:// Xml结束元素事件 如:</item>

                                                                  if (parser.getName().equalsIgnoreCase("item") && xmlObj != null) {

                                                                              objList.add(xmlObj);

                                                                              xmlObj = null;

                                                                  }

                                                                  break;

                                                 }

                                                 eventType = parser.next();//下一个事件类型

                                     }

                                     inStream.close();

                                     return objList;

                         }

             } catch (Exception e) {

                         e.printStackTrace();

             }

             return null;

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值