- 浏览: 249087 次
- 性别:
- 来自: 湖南
最新评论
-
KANGOD:
android:overScrollMode="ne ...
去掉ScrollVIew拉到尽头时再拉的阴影效果 -
yangsongjing:
comsci 写道非常感谢.....希望大家的代码和文档都能够 ...
java DES 加密解密 算法 -
comsci:
非常感谢.....
希望大家的代码和文档都能够用一种简单的方 ...
java DES 加密解密 算法 -
yangsongjing:
不过2.3以下的版本没这个方法怎么解决啊?
去掉android scrollview滚动到顶部继续滚会出现一个渐变的颜色块 -
yangsongjing:
setOverScrollMode(View.OVER_SCR ...
去掉android scrollview滚动到顶部继续滚会出现一个渐变的颜色块
这是解析的代码:
package com.icss.test_sax_xmlfile.biz;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.util.Log;
import android.util.Xml;
import com.icss.test_sax_xmlfile.StudentHandler;
import com.icss.test_sax_xmlfile.bean.Student;
public class StudentBiz {
public static List<Student> getlistFromSDBySAX(InputStream inputstream) throws IOException, SAXException, ParserConfigurationException{
List<Student> list=null;
//业务
//创建sax解析器工厂
SAXParserFactory spf=SAXParserFactory.newInstance();
//通过解析器工厂拿到解析器
SAXParser sp=spf.newSAXParser();
//解析器加流及handler来解析
StudentHandler sxh=new StudentHandler();
sp.parse(inputstream, sxh);
//handler中取出list
list=sxh.getList();
//关闭流
inputstream.close();
return list;
}
public static List<Student> getListFromSDCardByPull(InputStream inputStream)
throws ParserConfigurationException, SAXException, IOException,
XmlPullParserException {
List<Student> list = null;
Student s = null;
// 一种,直接pull
// XmlPullParserFactory f=XmlPullParserFactory.newInstance();
// XmlPullParser p=f.newPullParser(); //pull解析器
// 二种, android对pull的支持
XmlPullParser p = Xml.newPullParser(); // 通过android的pull支持创建一个pull解析器
p.setInput(inputStream, "utf-8");
int eventType = p.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
Log.i("localName", "" + p.getName());
// 每一个节点业务
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Student>();
break;
case XmlPullParser.START_TAG:
if ("student".equals(p.getName())) {
s = new Student();
s.setId(new Integer(p.getAttributeValue(null, "id")));
} else if ("name".equals(p.getName())) {
if (s != null) {
s.setName(p.nextText());
}
} else if ("age".equals(p.getName())) {
if (s != null) {
s.setAge(new Integer(p.nextText()));
}
}
break;
case XmlPullParser.END_TAG:
if ("student".equals(p.getName()) && s != null) {
list.add(s);
}
break;
}
eventType = p.next(); // 到下一个节点
}
return list;
}
}
实体类
package com.icss.test_sax_xmlfile.bean;
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
@Override
public String toString() {
return "年龄" + age + ", id=" + id + ", 名字" + name ;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public Student() {
super();
}
}
Halder
package com.icss.test_sax_xmlfile;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import android.util.Log;
import com.icss.test_sax_xmlfile.bean.Student;
public class StudentHandler extends DefaultHandler {
private List<Student> list;
private Student s;
private String preTag;
public List<Student> getList(){
return this.list;
}
@Override
public void startDocument() throws SAXException {
list=new ArrayList<Student>();
super.startDocument();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
Log.i("localName", localName);
if(localName!=null&&localName.equals("student")){
s=new Student();
s.setId(Integer.parseInt(attributes.getValue("id")));
}
preTag=localName;
super.startElement(uri, localName, qName, attributes);
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(s!=null){
if(preTag!=null&&preTag.equals("name")){
s.setName(new String(ch,start,length));
}else if(preTag!=null&&preTag.equals("age")){
s.setAge(Integer.parseInt(new String(ch,start,length)));
}
}
super.characters(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName) // name age student
throws SAXException {
if(localName!=null&&localName.equals("student")){
list.add(s);
}
preTag="";
Log.i("localName",list.size()+"");
super.endElement(uri, localName, qName);
}
}
MainActivity
package com.icss.test_sax_xmlfile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
import com.icss.test_sax_xmlfile.bean.Student;
import com.icss.test_sax_xmlfile.biz.StudentBiz;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File f=new File(Environment.getExternalStorageDirectory(),"ysj.xml");
FileInputStream fis=null;
try {
fis = new FileInputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
List<Student> list=null;
try {
list=StudentBiz.getlistFromSDBySAX(fis);
} catch (Exception e) {
Toast.makeText(this, "出错了"+e.toString(), Toast.LENGTH_LONG).show();
}
Toast.makeText(this, list.toString(), Toast.LENGTH_LONG).show();
}
}
}
发表评论
-
获取sha1
2018-07-18 16:03 674keytool -list -v -keystore /Use ... -
获取手机通话记录
2017-11-30 17:28 0/** * 读取数据 * * @ ... -
安卓打包加固自动化
2017-06-03 15:10 0惠农安卓打包后远程加固(阿里服务)支持工具: 由于远程调用阿里 ... -
阿里百川HotFix接入指南
2017-04-11 14:46 1561阿里百川HotFix接入指南 1.首先需要成为阿里开放平台的开 ... -
android 6.0权限
2016-08-29 08:44 627从Android 6.0开始, 用户需要在运行时请求权限, 本 ... -
2016 的一些android新技术
2016-08-04 16:31 426转:2016你需要了解Android有以下新兴的技术与框架,有 ... -
安卓应用每次从后台切换到前台都会启动欢迎界面的问题
2016-07-15 09:18 2810问题描述: 应用安装后,通过安装界面的打开按钮打开应用,每当应 ... -
android性能分析工具整理
2016-03-28 22:57 723原文链接:http://www.jians ... -
android 技术经验归纳
2016-03-28 22:54 5191.android基于java,java的抽象封装要会用,并且 ... -
android面试提问
2015-11-16 11:54 0一。登录过程中需要取消登录 怎么中断连接 1)如果用httpc ... -
android 集成百度地图路线规划
2015-05-26 11:21 8951.创建应用 包名需和应用一致 2.还需要填写安全码 = sh ... -
android 手机判断是否在充电 如断电自动打电话提醒功能
2015-05-18 11:14 3330public class MainActivity exten ... -
ANDROID应用安全防御
2015-04-02 10:06 1282Android应用的安全隐患包括三个方面:代码安全、数据安全和 ... -
Fragment加入Pagerview效果
2015-04-01 14:50 495转自 http://www.eoeandroid.com/t ... -
android性能优化
2015-03-30 10:59 24061.采用硬件加速,在androidmanifest.xml ... -
设计模式记忆方法(转)
2015-03-11 10:20 871设计模式的分类 创建型。 情景记忆:两个人在聊天。 ... -
android 数据库版本升级
2015-03-03 16:41 741数据库升级的意义 我 ... -
java 23种设计模式示例代码集合
2015-02-09 09:40 713策略模式,建造者模式,简单工厂模式,单例模式,抽象工厂模式 ... -
scrollview里面套listview 滑动事件问题
2014-08-08 15:43 866里面的listview放这个就行了。 package com ... -
int 和byte数组之间的转换
2014-08-06 17:52 930public byte[] intToByte(int i ...
相关推荐
易语言XML解析是编程领域中的一个重要主题,尤其对于使用易语言进行开发的程序员来说,理解并掌握XML(可扩展标记语言)的解析方法是至关重要的。XML作为一种结构化数据存储和交换格式,广泛应用于网络通信、配置...
java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...
根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...
在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)这个强大的图形化编程环境中,XML解析器是处理和操作XML数据的关键工具。本示例主要展示了如何在LabVIEW中实现XML文件的加载、保存和解析。 首先...
本文将详细介绍XML解析文件的两种主要方式:SAX(Simple API for XML)和DOM(Document Object Model)。 **1. DOM解析** DOM解析方式是将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个树的每个...
本文将深入探讨XML解析和生成工具的相关知识,以及如何利用提供的`Markup.cpp`和`Markup.h`文件进行操作。 XML的结构: XML文档由一系列元素构成,每个元素都有一个开始标签和结束标签,如 `<tag>` 和 `</tag>`。...
在Java中,XML解析有四种主要的方法:DOM、SAX、JDOM和DOM4J。 1. DOM(文档对象模型)是W3C推荐的标准,它将XML文档转换为一棵树形结构,允许开发者通过节点遍历和操作XML内容。DOM的优势在于它提供了一种灵活的...
本教程将介绍如何在iOS应用中实现简单的XML解析,并提供了一个名为"UITableViewTricks"的DEMO,供开发者们参考学习。 XML文件结构清晰,易于理解,但在iOS中解析XML数据并非内置功能,需要借助第三方库或者Apple...
MusicXML是一种开放标准的音乐符号交换格式,它允许数字音乐...总之,"MusicXML解析与布局"项目涵盖了XML解析、数据结构设计、图形渲染、音乐理论等多个方面的知识,对于深入理解音乐和计算机科学的结合具有重要意义。
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...
在嵌入式系统中,由于资源限制,往往需要轻量级且高效的XML解析器。"minixml"就是这样一个专为嵌入式系统设计的开源XML解析器,它提供DOM(Document Object Model)支持,使得开发者能够方便地处理XML文档。 mini...
Java XML解析是Java开发中的一项重要技能,尤其是在处理结构化数据时。XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换和文档存储等领域。本压缩包“java心电图xml解析....
XML解析支持库则是用于处理XML文档的核心工具,它们帮助开发者有效地读取、解析、创建和操作XML数据。 在Java开发中,常见的XML解析库有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming...
本文将深入探讨XML解析器的工作原理,并通过具体的代码示例帮助你理解和掌握XML解析的基本方法。 XML文档结构由元素、属性、文本内容、注释等构成。元素是XML文档的核心,它们用尖括号包围,如 `<element>`。属性...
《C语言实现的libxml2-2.9.8 XML解析器详解》 XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于网络数据交换、配置文件存储等领域。在IT行业中,C语言由于其高效、灵活的特点,常被用来编写...
XML解析技术是XML应用的核心,它涉及将XML文档转换为可处理的结构化数据。XML,全称为eXtensible Markup Language,是一种元语言,用于描述结构化数据,独立于编程语言、操作系统和传输协议。W3C联盟自1996年开始...
理解和熟练使用XML解析器是任何IT专业人士的必备技能之一,无论是在移动应用、Web服务还是桌面应用程序中,XML解析都发挥着关键作用。了解和掌握TinyXML这样的解析库,可以帮助开发者更高效地处理XML数据。
XML解析器是处理XML文档的核心组件,它能够读取XML文件并将其内容转换为程序可以理解的形式。在Java环境中,XML解析器通常以JAR(Java Archive)文件的形式提供,方便开发者集成到项目中。 "XML解析器下载JAR包"这...
XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言...
4. XML解析技术在Visio图数据交互中的具体应用:本文提出了一种新的方法,它利用成熟的XML解析技术来实现Visio图与应用程序间的数据交互。首先,需要将Visio图转换成XML格式的.vdx文件;其次,设计并实现一个解析...