android_好友列表XML解析构造

首先是FriendBean

package com.example.other;

public class FriendBean
{
    private String FName = null;
    private String FImg = null;
    private int iID = -1;

    public String getFName()
    {
        return FName;
    }

    public void setFName(String fName)
    {
        FName = fName;
    }

    public String getFImg()
    {

        return FImg;
    }

    public void setFImg(String fImg)
    {
        FImg = fImg;
    }

    public int getID()
    {
        return iID;
    }

    public void setID(int iId)
    {
        this.iID = iId;
    }

}

然后新建类FriendXMLContentHandler,使用sax解析xml

package com.example.other;

import java.util.ArrayList;
import java.util.List;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/*
 *
 * 解析如下xml
 * <friend id="1">
 * <fname></fname>
 * <fimg></fimg>
 * </friend>
 * <friend>。。。。
 *
 *
 * 使用:
 * public static List<friend> readXML(InputStream inStream)
 * {
 *         try {
 *            //创建解析器
 *            SAXParserFactory spf = SAXParserFactory.newInstance();
 *            SAXParser saxParser = spf.newSAXParser();
 *            //设置解析器的相关特性,true表示开启命名空间特性
 *            saxParser.setProperty("http://xml.org/sax/features/namespaces",true);
 *            XMLContentHandler handler = new XMLContentHandler();
 *            saxParser.parse(inStream, handler);
 *            inStream.close();
 *            return handler.getAllFriends();
 *            }
 *            catch (Exception e)
 *            {
 *                e.printStackTrace();
 *            }
 *      return null;
 *}
 *
 * */

public class FriendXMLContentHandler extends DefaultHandler
{
    private List<FriendBean> m_lFriends = null;

    private FriendBean m_currentFriend = null; // 记录当前对象
    private String m_tagName = null; // 当前解析的元素标签

    public List<FriendBean> getAllFriends()
    {
        return m_lFriends;
    }

    // 接到文档开始
    @Override
    public void startDocument() throws SAXException
    {
        // TODO Auto-generated method stub
        m_lFriends = new ArrayList<FriendBean>();
        super.startDocument();
    }

    // 开始解析
    @Override
    public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException
    {
        // TODO Auto-generated method stub
        if ( localName.equals("friend") )
        {
            m_currentFriend = new FriendBean();
            m_currentFriend.setID(Integer.parseInt(attributes.getValue("id")));
        }
        this.m_tagName = localName;
    }

    // 进入friend内
    @Override
    public void characters(char[] ch, int start, int length)
            throws SAXException
    {
        // TODO Auto-generated method stub
        if ( m_tagName != null )
        {
            String data = new String(ch, start, length);
            if ( m_tagName.equals("fname") )
            {
                this.m_currentFriend.setFName(data);
            } else if ( m_tagName.equals("fimg") )
            {
                this.m_currentFriend.setFImg(data);
            }
        }
    }

    //
    @Override
    public void endElement(String uri, String localName, String qName)
            throws SAXException
    {
        // TODO Auto-generated method stub
        if ( localName.equals("friend") )
        {
            m_lFriends.add(m_currentFriend);
            m_currentFriend = null;
        }
        this.m_tagName = null;
    }

}
时间: 2024-10-14 12:16:45

android_好友列表XML解析构造的相关文章

Mybatis 源码解析(二) - Configuration.xml解析

文章个人学习源码所得,若存在不足或者错误之处,请大家指出. 上一章中叙述了Configuration.xml流化到Mybatis内存中的过程,那么接下来肯定就是Configuration.xml文件解析操作,在Mybatis中,这个解析的操作由SqlSesssionFactoryBuilder负责.接下来我们看看SqlSessionFactoryBuilder的方法签名: SqlSessionFactoryBuilder提供了9个签名方法,其中前8个方法都是Configuration.xml的解

用json方法解析webqq好友列表文本

本节课主要讲解了用json方法解析webqq好友列表文本,并显示在超级列表框里.相信大家看完本节课,会对json格式文本的解析有更深层次的理解. 用json方法解析webqq好友列表文本,布布扣,bubuko.com

XML详解:第三部分 XML解析

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4290918.html XML解析... 72 使用DOM解析XML. 73 DOM树中的节点类型... 75 文档节点Document75 元素节点Element77 文本节点Text77 属性节点Attr78 NodeList接口...

XML解析器

一.操作XML文档概述 1.如何操作XML文档 XML文档也是数据的一种,对数据的操作也不外乎是"增删改查".也被大家称之为"CRUD" C:Create: R:Retrieve: U:Update: D:Delete 2.XML解析技术 XML解析方式分为两种:DOM(Document Object Model)和SAX(Simple API for XML).这两种方式不是针对Java语言来解析XML的技术,而是跨语言的解析方式.例如DOM还在Javascrip

XML解析技术研究(一)

摘要:XML作为过去十年中出现的最流行的技术之一,得到了广泛的应用,而其中XML解析技术是XML应用的关键.本文介绍了XML解析技术的研究动向,分析和比较了4种XML解析技术的优劣,并归纳总结了应用系统设计中选取合适的XML解析技术的原则. 1  引言 XML(eXtensible Markup Language,可扩展标记语言)是由World Wide Web联盟(W3C)定义的元语言,即一种关于语言的语言.XML的设计源于SGML (Standard Generalized Markup L

Android] Android XML解析学习——方式比较

[Android] Android XML解析学习——方式比较 (ZT) 分类: 嵌入式 (From:http://blog.csdn.net/ichliebephone/article/details/5981913) 一.基础知识 经过这段时间的学习,我们已经了解了Android平台上用于解析XML的三种方式:SAX.DOM和Pull.并且在学习的过程中也介绍了这三种方式各自的特点及适合的使用场合,简单的来说,DOM方式最直观和容易理解,但是只适合XML文档较小的时候使用,而SAX方式更适合

实现微信好友列表

 ListView列表控件 Android中的列表控件非常灵活,可以自定义每一个 列表项,实际上每一个列表项就是一个View,在Android定义 了3个列表控件:ListView.ExpandableListView和Spinner, 其中Spinner就是在Windows中常见的下拉列表框. 列表的显示需要三个元素: 1.View 用来展示数据的view 2.适配器 用来把数据映射到view上的中介. 3.数据  具体的将被映射的字符串,图片,或者基本组件. 实战案例 实现微信好友列表

Java XML解析之DOM

DOM解析是官方提供的XML解析方式之一,使用时无需引入第三方包,代码编写简单,方便修改树结构,但是由于DOM解析时是将整个XML文件加载到内存中进行解析,因此当XML文件较大时,使用DOM解析效率会降低,而且可能造成内存溢出. 当XML文件较大时应采用SAX解析(下一篇中会介绍).通常情况下,若XML文件只是用作系统的配置文件,文件一般不会很大,使用DOM解析基本就能解决问题. 以下分别是解析和生成xml的基本步骤: 1. XML解析: 上文已经说过DOM解析时是将整个XML文件加载到内存中,

一步一步来做WebQQ机器人-(四)(获取好友列表和群列表)

× 本篇主要是: 获取好友列表,群列表 我会尽量详细一点,尽我所知的分享一些可能大家已经掌握的或者还不清楚的经验 利于大家阅读,文章样式不再复杂化,根据内容取固定色 目前总进度大概65% 全系列预计会有这些步骤,当然某些步骤可能会合并: 验证码 第一次登陆 第二次登陆 保持在线和接收消息 获取好友和群列表 发送消息 变成智能的(*?∀?*) 获取好友 1-获取QQ好友的hash算法 P = function (b, j) { for (var a = j + "password error&qu