当前位置:  编程技术>移动开发

Android开发之XML文件解析的使用

    来源: 互联网  发布时间:2014-10-14

    本文导语:    前言    本文主要介绍在Android中怎样来解析XML文件。主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包。作为接口,SAX是事件驱动型XML解析的一个标准接口。XML文件解析一般有2种方法,DOM...

  前言 

  本文主要介绍在Android中怎样来解析XML文件。主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包。作为接口,SAX是事件驱动型XML解析的一个标准接口。XML文件解析一般有2种方法,DOM和SAX。其中DOM需要先将xml文档全部读入到电脑内存中,当文档内容太大时,该方法并不适用。SAX就比较好的解决了该问题,它是逐行解析的,可以随时中断。但是SAX的操作比较复杂。因此,这2种方法各有优缺点,看具体应用情况。在前面的文章Qt学习之路_12(简易数据管理系统)中使用的是Qt中的DOM方法。

  实验说明

  大多数SAX实现都会产生类似下面的事件:

  在文档的开始和结束处触发文档处理事件;在文档内每一XML元素结束解析的前后触发元素事件;任何元数据通常豆油单独的事件交付;在处理文档的DTD或者Schema时产生DTD 或者Schema事件;产生错误事件用来通知主机应用程序解析错误。

  SAX模型示意图如下所示:

   

  如果要用SAX来解析xml文档,则需要一个类来继承android系统提供的ContentHandler类。但是如果继承ContentHandler这个类, 即使你不使用这个类提供的所有方法,你也必须实现其内部的所有方法(一般情况下没有使用的方法可以直接用空方法代替),但是这样开发起来不是很方便。因此我们可以改为继承DefaultHandler这个类,这样的话我们只需要实现程序中所需要的方法即可,其它的方法这个类内部其实已经用空方法代替了。

ContentHandler接口的方法有以下几种:

void startDocument();//文档解析开始时执行

void endDocument();//文档解析结束时执行

void startElement(String uri, String localName, String qName, Attributes atts);//标签开始解析时执行

void endElement(String uri, String localName, String qName, Attributes atts);//标签解析结束时执行

void characters(char[] ch, int start, int length );//解析标签属性时执行

  android中使用SAX来解析xml文件,需先建立一个SAX工厂,即SAXParserFactory对象,还需建立一个XMLReader对象,该类绑定ContentHandler子类,且与xml源文件结合在一起。即其处理过程为创建事件处理程序,创建SAX解析器,键事件处理程序分配给解析器,对文档进行解析,将每个事件发送给处理程序。 

  判断String类型的值是否相等采用的是String类的equal方法。 

  本实验是解析一段xml代码,然后在上面每个解析函数中打印一些内容。主要是学会怎么使用SAX模型来来创建解析器,怎样使用ContentHandler子类的函数来进行解析。

  实验主要部分代码:

Mainactivity.java:

代码如下:

package com.example.xml;

import java.io.StringReader;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    private Button start  = null;
    private TextView display = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        start = (Button)findViewById(R.id.start);
        start.setOnClickListener(new StartOnClickListener());
    }

    public class StartOnClickListener implements OnClickListener{

        public void onClick(View v) {
            // TODO Auto-generated method stub
            //注意2点,第1:字符串中如果要换行写,则应该用引号和加号来相加得到,不能直接换行写
            //第2点:如果字符串中有字符,则用括号里面的符合(")代替引号。
            //我这里用的xml文件直接为该程序layout的布局xml文件
//            String result_str =
//            " " +
//           
//             "   " +
//              "      " +
//        "    ";

            String result_str =        
             "  


    
 
 

您可能感兴趣的文章:

  • 解析ADT-20问题 android support library
  • android layout XML解析错误的解决方法
  • Android入门之TableLayout应用解析(一)
  • 解析:android 如何从JPEG生成BufferedImage
  • 基于Android XML解析与保存的实现
  • 基于android中读取assets目录下a.txt文件并进行解析的深入分析
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法
  • Android入门之TableLayout应用解析(二)
  • 解析Android中string-array数据源的简单使用
  • 解析android创建快捷方式会启动两个应用的问题
  • 解析离线安装Eclipse的Android ADT开发插件的具体操作(图文)
  • 解析后台进程对Android性能影响的详解
  • 解析Android横竖屏切换的问题
  • 解析android中的帮助、about、关于作者、HELP等提示页面
  • Android中asset文件夹与raw文件夹的区别深入解析
  • 解析Android应用程序运行机制
  • android4.0与2.3版本的TP代码区别解析
  • 解析Android中webview和js之间的交互
  • Android中Parcelable的作用实例解析
  • 解析Android开发优化之:对界面UI的优化详解(二)
  • Android创建文件实现对文件监听示例
  • Android文件管理器 雪梦文件管理器
  • Android中删除文件以及文件夹的命令记录
  • Android文件管理器 Astro
  • Android文件管理器 AndFileManage
  • android通过配置文件设置应用安装到SD卡上的方法
  • android开发教程之系统资源的使用方法 android资源文件
  • android保存Bitmap图片到指定文件夹示例
  • android读取assets文件示例
  • Android 工程内嵌资源文件的两种方法
  • android下跑ubuntu下的可执行文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • Android文件管理器 Astro iis7站长之家
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3