首页 技术 正文
技术 2022年11月15日
0 收藏 587 点赞 5,024 浏览 1798 个字

package com.huawei.xml;

import java.io.InputStream;
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;

/**
* @author Administrator
*
* 测试 sax解析
*
*/
public class TestSAXParser {

public static void main(String[] args) throws Exception{
/**
* 得到工厂
*
* 用工厂得到解析器
*
* 用解析器去解析文件 并注册一个处理器
*
*/

//得到工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
//得到解析器
SAXParser saxParser = factory.newSAXParser();

InputStream in = TestSAXParser.class.getClassLoader().getResourceAsStream(“com/cdsxt/resources/Users.xml”);

saxParser.parse(in,new Handler());
}
}

class Handler extends DefaultHandler{

/**
* 首先是文档开始 startDocument
* 元素开始startElement
* 字符数据characters
* 元素结束endElement
* 文档结束endDocument
*/

//构建一个存储器
Stack<String> names = new Stack<String>();

@Override
public void startDocument() throws SAXException {
//System.out.println(“Handler.startDocument()”);
}

@Override
public void endDocument() throws SAXException {
//System.out.println(“Handler.endDocument()”);
}

@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
//System.out.println(“Handler.startElement()”);
/*System.out.println(“—————-“);
System.out.println(“uri:”+uri);
System.out.println(“localName:”+localName);
System.out.println(“attributes:”+attributes.getValue(“id”));
System.out.println(“—————-“);*/
//System.out.println(“qName:”+qName);
names.push(qName);
}

@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
//System.out.println(“Handler.endElement()”);
names.pop();
}

@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
//System.out.println(“Handler.characters()”);

if(names.peek().equals(“username”)){
System.out.println(new String(ch,start,length));
}

}

}

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,955
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,479
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,291
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,108
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,740
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,774