iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android中怎么解析XML文件
  • 139
分享到

Android中怎么解析XML文件

android 2023-05-30 23:05:08 139人浏览 安东尼
摘要

本篇文章给大家分享的是有关Android中怎么解析XML文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。XMLXML(eXtensible Markup Language)中

本篇文章给大家分享的是有关Android中怎么解析XML文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

XML

XML(eXtensible Markup Language)中文名为可扩展标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。

用途

XML设计用了传送及携带数据信息,不用了表现或展示数据,html语言则用了表现数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。

丰富文件——自定文件描述并使其更丰富
元数据——描述其它文件或网络资讯
配置文档——描述软件设置的参数

结构

每个XML文档都由XML序言开始,在前面的代码中第一行就是XML序言,<?xml version="1.0"?>。这一行代码会告诉解析器或浏览器这个文件应该按照XML规则进行解析。但是,根元素的名称是由文档类型定义或XML纲要定义的。

XmlPullParser

PULL解析xml是基于事件驱动的方式解析XML文件,pull开始解析时,我们可以先通过getEventType()方法获取当前解析事件类型,并且通过next()方法获取下一个解析事件类型。PULL解析器提供了START_DOCUMENT(开始文档)、END_DOCUMENT(结束文档)、START_TAG(开始标签)、END_TAG(结束标签)四种事件解析类型。当处于某个元素时,可以调用getAttributeValue()方法获取属性的值,也可以通过nextText()方法获取本节点的文本值。下面通过一个例子来进行解析。

xml示例文件

需要解析的xml示例文件代码如下:

<?xml version="1.0" encoding="UTF-8"?><colleagues>  <colleague id="1">    <name>耗子</name>    <age>24</age>    <sex>boy</sex>  </colleague>  <colleague id="2">    <name>璐璐</name>    <age>28</age>    <sex>girl</sex>  </colleague>  <colleague id="3">    <name>陈善</name>    <age>26</age>    <sex>boy</sex>  </colleague></colleagues>

XmlPullParser解析器

package com.example.shakedemo;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import android.R.xml;import android.util.Log;import android.util.Xml;public class XmlPullParserHelper {  public static List<Colleague> getColleagues(String xmlFilePath) {    List<Colleague> colleagues = new ArrayList<Colleague>();    FileReader xmlReader = null;    try {      xmlReader = new FileReader(new File(xmlFilePath));    } catch (FileNotFoundException e) {      Log.e("wzy", "Couldn't find xml file " + xmlFilePath);      return colleagues;    }    try {      // 方式1: 使用 Android 提供的android.util.Xml 类获取 parser 对象      XmlPullParser parser = Xml.newPullParser();      // 方式2: 使用工厂类 XmlPullParserFactory      // XmlPullParserFactory pullFactory =      // XmlPullParserFactory.newInstance();      // XmlPullParser parser = pullFactory.newPullParser();      // 设置文件输入流      parser.setInput(xmlReader);      // 得到当前事件类型      int eventType = parser.getEventType();      Colleague colleague = null;      while (eventType != XmlPullParser.END_DOCUMENT) {        switch (eventType) {        case XmlPullParser.START_DOCUMENT:          break;        case XmlPullParser.START_TAG:                    String name = parser.getName();          if ("colleague".equals(name)) {            colleague = new Colleague();            colleague.setId(Integer.parseInt(parser.getAttributeValue(null, "id")));          } else if ("name".equals(name)) {            if (colleague != null) {              colleague.setName(parser.nextText());            }          } else if ("age".equals(name)) {            if (colleague != null) {              colleague.setAge(Integer.parseInt(parser.nextText()));            }          } else if ("sex".equals(name)) {            if (colleague != null) {              colleague.setSex(parser.nextText());            }          }          break;        case XmlPullParser.END_TAG:          if ("colleague".equals(parser.getName()) && colleague != null) {            colleagues.add(colleague);            colleague = null;          }          break;        }        eventType = parser.next();      }      xmlReader.close();    } catch (XmlPullParserException e) {      // Do nothing    } catch (IOException e) {      // Do nothing    }    return colleagues;  }}

其中,colleague类的定义比较简单,代码如下:

package com.example.shakedemo;public class Colleague {  private int id;  private int age;  private String name;  private String sex;  public int getId() {    return id;  }  public void setId(int id) {    this.id = id;  }  public int getAge() {    return age;  }  public void setAge(int age) {    this.age = age;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public String getSex() {    return sex;  }  public void setSex(String sex) {    this.sex = sex;  }  @Override  public String toString() {    return "ID is " + id + ", Name is " + name + ", Sex is " + sex;  }}

以上就是Android中怎么解析XML文件,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: Android中怎么解析XML文件

本文链接: https://www.lsjlt.com/news/221915.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作