返回顶部
首页 > 资讯 > 精选 >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://lsjlt.com/news/221915.html(转载时请注明来源链接)

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

猜你喜欢
  • Android中怎么解析XML文件
    本篇文章给大家分享的是有关Android中怎么解析XML文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。XMLXML(eXtensible Markup Language)中...
    99+
    2023-05-30
    android
  • python怎么解析xml文件
    在Python中可以使用ElementTree模块来解析XML文件。以下是一个简单的示例: import xml.etree.Ele...
    99+
    2024-04-02
  • Java中解析XML文件
    1.初识XML 1.1 定义         XML(EXtensible Markup Language),可扩展标记语言,相比于HTML可以自定义标签,不遵循W3C标准         XML特点:跨平台、跨语言、跨系统。XML与操作系...
    99+
    2023-09-23
    xml
  • Android中怎么使用pull方式解析xml格式文件
    这篇文章将为大家详细讲解有关Android中怎么使用pull方式解析xml格式文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体如下:<xml version="...
    99+
    2023-05-30
    android pull xml
  • 详解android使用SAX解析XML文件
    解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析。 DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这...
    99+
    2022-06-06
    XML sax解析xml xml文件 sax Android
  • Android中使用sax解析xml文件的方法
    SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺...
    99+
    2022-06-06
    xml文件 sax XML 方法 sax解析xml Android
  • 怎么使用dom4j解析xml文件
    怎么使用dom4j解析xml文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。DOM4J解析特征:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功...
    99+
    2023-05-31
    dom4j xml
  • Android中怎么使用 pull解析xml
    本篇文章为大家展示了Android中怎么使用 pull解析xml,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。persons.xml<xml version="1.0&qu...
    99+
    2023-05-30
    android pull xml
  • FineReport中怎么解析数据库内XML文件
    本篇文章给大家分享的是有关FineReport中怎么解析数据库内XML文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在数据库表中,其中字段...
    99+
    2024-04-02
  • Android开发之XML文件解析的使用
      前言    本文主要介绍在Android中怎样来解析XML文件。主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个...
    99+
    2022-06-06
    android开发 xml文件 XML Android
  • C++怎么生成和解析XML文件
    这篇文章主要介绍“C++怎么生成和解析XML文件”,在日常操作中,相信很多人在C++怎么生成和解析XML文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么生成和解析...
    99+
    2024-04-02
  • Android中的Xml 文档怎么利用XmlPullParser 进行解析
    这期内容当中小编将会给大家带来有关Android中的Xml 文档怎么利用XmlPullParser 进行解析 ,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android XmlPullParser 方式...
    99+
    2023-05-31
    android xmlpullparser xml
  • Android项目中解析XML文件的方法有哪些
    今天就跟大家聊聊有关Android项目中解析XML文件的方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。xml文件代码<&#63;xml version=&qu...
    99+
    2023-05-31
    android xml roi
  • php中怎么利用expat方式解析xml文件
    这篇文章将为大家详细讲解有关php中怎么利用expat方式解析xml文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。test.xml:<xml version="...
    99+
    2023-06-04
  • Android怎么在XML文件中自定义控件
    今天小编给大家分享一下Android怎么在XML文件中自定义控件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、为什么需要...
    99+
    2023-07-05
  • Android 解析XML 文件的四种方法总结
    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织...
    99+
    2022-06-06
    解析xml XML 方法 Android
  • Android开发之DOM解析xml文件的方法
    本文实例讲述了Android中DOM解析xml文件的方法。分享给大家供大家参考,具体如下: 一、在assets文件中写xml文件 <?xml version=...
    99+
    2022-06-06
    xml文件 XML 方法 android开发 dom Android
  • Android中使用PULL方式解析XML文件深入介绍
    一、基本介绍 Android中极力推荐xmlpull方式解析xml。 xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlp...
    99+
    2022-06-06
    xml文件 解析xml XML Android
  • java怎么解析xml报文
    Java提供了多种解析XML报文的方式,常用的方式有DOM解析、SAX解析和StAX解析。1. DOM解析:DOM解析是将整个XML...
    99+
    2023-09-29
    java xml
  • Android使用Pull解析器解析xml文件的实现代码
    2个类:1个实体类Person.java,1个继承Activity的类   1.Person.java 代码如下:package com.mrzhu.work_1_...
    99+
    2022-06-06
    xml文件 解析xml XML Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作