Person.java
package org.email;
public class Person {
private String name;
private String e_mail;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
}
SaxReadXml.java
package org.email;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
public class SaxReadXml extends DefaultHandler {
private Person person;
private List<Person> personList;
private String oo;
public static final String RECORD = "RECORD";
public static final String NAME = "NAME";
public static final String E_MAIL = "E_MAIL";
public List<Person> getPersonList() {
return personList;
}
public List<Person> readXml(InputStream in) throws Exception {
SaxReadXml srx = new SaxReadXml();
XMLReader xr = XMLReaderFactory
.createXMLReader("org.apache.xerces.parsers.SAXParser");
xr.setContentHandler(srx);
// xr.parse(new InputSource(new FileReader(""))); //乱码
xr.parse(new InputSource(in));
return srx.getPersonList();
}
public static void main(String[] args) {
SaxReadXml srx = new SaxReadXml();
try {
List<Person> list = srx.readXml(srx.getClass().getClassLoader()
.getResourceAsStream("ff.xml"));
for (Person p : list) {
System.out.println(p.getName() + ":" + p.getE_mail());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void startDocument() throws SAXException {
personList = new ArrayList<Person>();
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String data = new String(ch, start, length);
if (E_MAIL.equals(oo)) {
person.setE_mail(data);
}
if (NAME.equals(oo)) {
person.setName(data);
}
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if (RECORD.equals(localName)) {
person = new Person();
// person.setId(new Integer(attributes.getValue("ID")));
}
oo = localName;
}
@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
if (RECORD.equals(localName) && person != null) {
personList.add(person);
person = null;
}
oo = null;
}
}
ff.xml
<?xml version="1.0" encoding="UTF-8"?>
<RECORDS>
<RECORD>
<NAME>XXX</NAME>
</RECORD>
<RECORD>
<NAME>BBBBB</NAME>
</RECORD>
</RECORDS>
SAX方式读取XML
原创1058106015 ©著作权
©著作权归作者所有:来自51CTO博客作者1058106015的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Dom4j读取XML
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MybatisPlus基础Xml使用教程
MybatisPlus基础最全教程,里面包含操作的核心教程以及重点难点,很适合新手以及中高级开发学习
mybatis mybatisplus springboot -
SAX原样读取XML
需求:读取contact.xm文件,完整的输出文档内容。 Demo:package co
sax读取xml xml java ide -
QT SAX读取XML
XML,Extensible Markup Language, 可拓展标记语言,它可以用来
qt xml 数据 #include xml文件 -
Android 创建与解析XML(三)—— Sax方式
981. Sax概述SAX是一种占用内存少且解析速度快的解析器,它采用的是事件
xml android attributes string 文档 -
Linux gdp 导出java内存
一、关于Linux备份文件和应用的几个命令:tar和cp 在工作中,经常来备份文件和系统应用,常用到的主要是tar和cp命令,分别介绍如下: 一、tar命令,这个现在经常使用用来打包: tar包指的是档案文件:tar -cvf filename_20140805.tarfilename 打tar包的方法 tar -xvf filename_20140805.tar 解
Linux gdp 导出java内存 linux下备份一个目录下所有文件及目录 bc 备份文件 拷贝文件