- 浏览: 424767 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Java搜索工具——Lucene实例总结(一) -
chengang292214:
总结的不错
Web开发中的路径问题 -
liuyuanhui0301:
aka~
Java 归并排序(基于数组) -
IT人_:
不错
远程连接MySQL,防火墙阻止访问,解决办法 -
zhuchao_ko:
借鉴。
JNDI访问LDAP
1. SAX的基本原理及常用的接口
* Simple API for XML,对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)的开始与结束时会通知事件处理函数,由事件处理函数做相应的动作,然后继续扫描,知道文档结束。
* SAX的常用接口
- ContentHandler接口,位于org.xml.sax下。当XML解析器开始解析XML输入文档时,它会遇到诸如文档的开头和结束、元素的开头和结束以及原色中的字符数据等事件,XML解析器会调用Contenthandler接口中相应的方法来响应该事件。
* 特点
- 优点: 适合查询
- 缺点: 不适合插入元素和删除元素
* 代码示例
- SaxParseTest.java
package sax1; import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import java.io.*; /** * Title: 使用SAX解析XML */ public class SaxTestHandler extends DefaultHandler { public static void main(String[] argv) { try { // 建立SAX解析工厂 SAXParserFactory spfactory = SAXParserFactory.newInstance(); // 生成SAX解析对象 SAXParser parser = spfactory.newSAXParser(); // 指定XML文件,进行XML解析 parser.parse(new File("src/book.xml"), new SaxTestHandler()); } catch (Exception e) { e.printStackTrace(); } } /** * 方法说明:文件打开时调用 */ public void startDocument() { System.out.println("***开始解析***"); } /** * 方法说明:当遇到开始标记时调用 */ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.println("节点开始:" + qName); for (int i = 0; i < attributes.getLength(); i++) { System.out.println("节点属性名称:" + attributes.getQName(i)); System.out.println("节点属性值:" + attributes.getValue(i)); } } /** * 方法说明:当分析器遇到无法识别为标记或者指令类型字符时调用 */ public void characters(char[] ch, int offset, int length) throws SAXException { System.out.println("节点数据:" + new String(ch, offset, length)); } /** * 方法说明:当遇到节点结束时调用 */ public void endElement(String uri, String localName, String qName) { System.out.println("节点结束:" + qName); } /** * 方法说明:当到文档的末尾调用 */ public void endDocument() { System.out.println("****文件解析完毕****"); } }
- xml文件
<?xml version="1.0" encoding="GBK" ?> <book> <title>Java实例一百例</title> <page id="1"> <title>基础知识篇</title> <file>base.htm</file> </page> <page id="3"> <title>SWING篇</title> <file>swing.htm</file> </page> <page id="28"> <title>EJB篇</title> <file>ejb.htm</file> </page> <page id="33"> <title>DOM篇</title> <file>xmldom.htm</file> </page> </book>
* 两种方式读取xml文件
- 读文件方式
见上例。
- 读取xml字符串
//reader方式 public static void sax_reader() { FileOperate fo = new FileOperate(); String path = SaxTest.class.getResource("").getPath(); String xmls; try { xmls = fo.readTxt(path + "../book.xml", ""); SAXParserFactory factory = SAXParserFactory.newInstance(); XMLReader reader; reader = factory.newSAXParser().getXMLReader(); reader.setContentHandler(new SaxTestHandler()); reader.parse(new InputSource(new StringReader(xmls))); } catch (Exception e1) { e1.printStackTrace(); } }
发表评论
-
Test
2014-07-11 15:51 723insert into CMLGPLGP (CMLGP_L ... -
C/C++调用Java代码 创建对象、字符串操作
2011-12-01 16:08 3621back>> 1. java对象的创建的步骤 ... -
JNI(C/C++调用Java父类/子类方法)
2011-11-30 21:56 8239back>> 1. C/C++调用Java函 ... -
C/C++调用Java代码(属性和方法)
2011-11-30 10:48 9248back>> 1. JNIEnv对象 ... -
JNI(Java调用C/C++代码)
2011-11-30 10:46 8420back>> 1. 首先在Java类中声明一 ... -
JNI(Java Native Interface)
2011-11-30 10:12 12411. 基本概念 - Java是跨平台的语言, ... -
JNDI访问LDAP
2011-11-27 11:52 34411. 搭建了ldap服务器 - 下载ope ... -
JNDI
2011-11-27 11:22 21571. 基本概念 (参考 ) jndi ... -
Java 文件锁技术
2011-08-06 09:39 2190IRIP项目中,Agent每分钟都要向Director ... -
Java IO(文件操作工具类)
2011-07-13 18:30 4514去Java IO >> FileOperate实 ... -
java里抽象类和接口的区别
2011-03-05 23:31 750下面的这篇文章讲 ... -
Java 多线程(三)--正确理解ThreadLocal
2011-03-03 18:04 1369转自:http://www.iteye.com/topic/1 ... -
Callable 与 Runnable 的区别
2011-03-03 17:56 3220转自:http://blog.sina.com.cn/s/bl ... -
Java 多线程(二)
2011-03-03 16:21 1987并发 Table of Contents ... -
Java编码规范
2011-02-15 11:10 15871.Eclipse配置 (1) 导入o ... -
Java搜索工具——Lucene实例总结(一)
2010-12-22 21:42 17845参考网页:http://footman265.itey ... -
Java 集合--Map、HashMap、HashTable、TreeMap
2010-12-14 14:20 100511. Map基础 Map接口提供3种集 ... -
JMS在Spring框架下的应用
2010-12-07 23:51 13142上传通讯薄操作, ... -
页面自动跳转代码
2010-11-09 15:11 15801. 在body中使用onload属性 &l ... -
Java 多线程(一)
2010-07-27 18:07 905参考自:http://lavasoft.blog.51cto. ...
相关推荐
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 SAX解析XML xml 源码(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
Android XML解析 SAX DOM Pull 以person类为例进行解析,适合初学者学习
XML解析之SAX解析DEMO,之前在播控上有介绍,但是代码排版太乱了,这个就是Android4.0网络编程中的SAX解析例子。
XML文件解析器 支持dom解析和sax模式解析,c语言实现
Android XML解析之SAX解析 简单方便的解析方法
xml解析 SAX解析 XML pull解析 DOM解析 包含三种解析方式 全部实现xml pull与stax类似 故省略
Sax解析XML文件解
XML通过SAX解析为JSON格式的文档 例子中的类稍微修改可以做做到公用
使用SAX解析方式解析XML文件及输出数据。
xml sax解析
JDK自带xml解析器dom+sax JDK自带xml解析器dom+sax JDK自带xml解析器dom+sax
java学习笔记——使用DOM解析XML和使用SAX解析XML
使用java语言对XML文档进行解析的示例,包括DOM,SAX方式,并包括使用jdom和jom4j框架进行XML解析或生成XML文档
NULL 博文链接:https://wang-peng1.iteye.com/blog/1133695
Java SAX解析Xml Demo(详细注释)
虽然SAX(Simple API for XML)解析器是解析XML十分方便的工具,但开发和维护SAX解析器是十分困难的,本文会告诉你如何使用XML Schemas中的信息来生成一个SAX解析器的框架源码,并且完成解析xml的技术
sax解析xml本地读取xml,希望对你有用
在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器. 这里的源代码介绍的是Android XML解析之SAX方式
绝对可用的SAX解析XML文件项目,费了九牛二虎之力,才找到的好资源,特与大家共享出来。直接导入eclipse就可运行,无需任何配置。