博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SAX解析XML文档之一
阅读量:4102 次
发布时间:2019-05-25

本文共 2159 字,大约阅读时间需要 7 分钟。

 

<学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nonamespaceschemalocation="C:\Course30\student.xsd">
<学生 学号="1">
<姓名>
张三
<性别>
<年龄>
20
<学生 学号="2">
<姓名>
李四
<性别>
<年龄>
19
<学生 学号="3">
<姓名>
王五
<性别>
<年龄>
21

 

 

 

 

package cn.sisy.xml;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
stack = new Stack
(); private String name; private String gender; private String age; @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { //System.out.println(qName+"---"); 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(); } }}

 

 

 

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

xsi:noNamespaceSchemaLocation=C:\Course30\student.xsd

学号=1

姓名:张三

性别:男

年龄:20

学号=2

姓名:李四

性别:女

年龄:19

学号=3

姓名:王五

性别:男

年龄:21

 

 

 

SAX解析XML文档的机制是基于事件的,它将XML文档中每一个元素的开始,及一些空白,还有字符串等都看出是一个事件,这样每遇到一个事件就会触发一个方法的调用。|SAX的处理机制是基于事件的,是顺序的|

转载地址:http://xsbsi.baihongyu.com/

你可能感兴趣的文章
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>
c# 计算器
查看>>
C# 简单的矩阵运算
查看>>
gcc 常用选项详解
查看>>
c++输入文件流ifstream用法详解
查看>>
c++输出文件流ofstream用法详解
查看>>
字符编码:ASCII,Unicode 和 UTF-8
查看>>
QT跨MinGW和MSVC两种编译器的解决办法
查看>>
firewalld的基本使用
查看>>
Linux下SVN客户端使用教程
查看>>
i2c-tools
查看>>
Linux分区方案
查看>>
nc 命令详解
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>