java之SAX解析XML
来源:互联网 发布:北京工业大学软件考研 编辑:程序博客网 时间:2024/05/16 14:37
SAX采用事件处理方式解析XML文件。利用SAX解析XML文件。涉及到两部分:解析器和事件处理。
解析器可以属于JAXP的API创建,创建SAX解析器后,就可以指定SAX解析器去解析某个XML文档了。
解析器采用SAX方式在解析某个XML文档时,它只要解析到XML文档的一个组成部分,都会去调用事件处理的一个方法,解析器在调用事件的处理方法时,会把当前解析的XML内容当做方法的参数传给事件处理器。
事件处理器由程序员编写,程序员通过事件处理器中方法的参数,就可以很轻松的得到SAX解析器解析的到的数据,从而决定如何对数据进行处理。
// 创建解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
// 得到解析器
SAXParser parser = factory.newSAXParser();
// 得到读取器
XMLReader reader = parser.getXMLReader();
// 设置内容处理器
reader.setContentHandler(new ListHandler());
// 读取XML文档
reader.parse("src/2.xml");
class ListHandler implements ContentHandler{
@Override
public void startElement(String uri, String localName, String qName,
Attributes atts) throws SAXException {
// 得到开始节点的名称
System.out.println("<"+qName+">");
// 判断节点是否是有属性
for(int i = 0;atts != null && i<atts.getLength();i++){
String attName = atts.getQName(i);
String attValue = atts.getValue(i);
System.out.println(attName+"=="+attValue);
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println(new String(ch,start,length));
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// 得到结束节点的名称
System.out.println("</"+qName+">");
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void endPrefixMapping(String prefix) throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void processingInstruction(String target, String data)
throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void setDocumentLocator(Locator locator) {
// TODO Auto-generated method stub
}
@Override
public void skippedEntity(String name) throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
// TODO Auto-generated method stub
}
}
- java之SAX解析XML
- java xml解析之SAX
- java简单解析xml之SAX解析
- Java 解析 XML 文件之 SAX 解析
- Java XML解析之SAX解析
- Java解析xml文档之SAX解析
- Java 解析 xml 之 DOM and SAX
- JAVA 解析XML之SAX方式
- JAVA解析XML之SAX方式
- Java之SAX解析XMl文件
- 解析xml之--SAX
- 解析xml之--SAX
- 解析xml之--SAX
- XML解析之SAX
- XML 解析之SAX
- XML解析之SAX
- 【xml之SAX解析】
- XML解析之SAX
- 用递归实现循环
- fork()例程--父子进程,对线性地址的说明(3)
- Android学习笔记之结构说明
- JavaScript正则验证IP
- x86-64体系下一个奇怪问题的定位
- java之SAX解析XML
- SUSE下开启ssh的方法
- 优化高速接口的时序裕量
- 关于spring+hibernate+struts架构service层的作用
- 每个程序员都应该学习使用Python或Ruby
- javaWeb开发环境搭建
- Java垃圾回收
- poj 1094拓扑排序+flody
- android3D效果图