java解析xml的几种方式 SAX解析
来源:互联网 发布:手机淘宝装修日记 编辑:程序博客网 时间:2024/06/05 01:17
Java代码
import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxTest1
{
public static void main(String[] args) throws Exception
{
//step1: 获得SAX解析器工厂实例
SAXParserFactory factory = SAXParserFactory.newInstance();
//step2: 获得SAX解析器实例
SAXParser parser = factory.newSAXParser();
//step3: 开始进行解析
parser.parse(new File("student.xml"), new MyHandler());
}
}
class MyHandler extends DefaultHandler
{
@Override
public void startDocument() throws SAXException
{
System.out.println("parse began");
}
@Override
public void endDocument() throws SAXException
{
System.out.println("parse finished");
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
System.out.println("start element");
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException
{
System.out.println("finish element");
}
}
Java代码
import java.io.File;
import java.util.Stack;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxTest2
{
public static void main(String[] args) throws Exception
{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(new File("student.xml"), new MyHandler2());
}
}
class MyHandler2 extends DefaultHandler
{
private Stack<String> stack = new Stack<String>();
private String name;
private String gender;
private String age;
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
stack.push(qName);
for(int i = 0; i < attributes.getLength(); i++)
{
String attrName = attributes.getQName(i);
String attrValue = attributes.getValue(i);
System.out.println(attrName + "=" + attrValue);
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException
{
String tag = stack.peek();
if("姓名".equals(tag))
{
name = new String(ch, start,length);
}
else if("性别".equals(tag))
{
gender = new String(ch, start, length);
}
else if("年龄".equals(tag))
{
age = new String(ch, start, length);
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException
{
stack.pop(); //表示该元素已经解析完毕,需要从栈中弹出
if("学生".equals(qName))
{
System.out.println("姓名:" + name);
System.out.println("性别:" + gender);
System.out.println("年龄:" + age);
System.out.println();
}
}
}
- java解析xml的几种方式 SAX解析
- java XML的SAX解析方式
- java解析xml(sax方式)
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析XML的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java解析xml的几种方式
- java 解析XML的几种方式
- wxWidgets下显示下载进度条
- AFNetworking 上传文件
- VS2010搜索对话框函数的方法
- Mac OS X: 系统nvram启动参数
- (转帖)HashMap的读写并发 脏读 脏数据
- java解析xml的几种方式 SAX解析
- 嵌入式中 volatile 用法
- 通过管道执行cmd命令
- 第三周——顺序表的基本运算
- 一切正常的项目不能运行的解决办法
- Spring 3 MVC and RSS feed example
- 如何发布自己的webservice
- HDU--1232畅通工程
- 第二周-项目3-汉诺塔