SAX是一个顺序执行,事件驱动的解析方法(事件驱动,简单地说就是你点什么按钮(即产生什么事件))
SAX的工作原理;
1.在文档的开始和结束时触发文档处理事件。 2.在文档内每一XML元素接受解析的前后触发元素事件。 3.任何元数据通常由单独的事件处理 4.在处理文档的DTD或Schema时产生DTD或Schema事件。 5.产生错误事件用来通知主机应用程序解析错误。
DOM解析博客地址连接:DOM解析
SAX与DOM解析的优点;SAX解析适合较大的XML文件解析,DOM可以增加节点
SAX解析的主要方法;
1,创建解析工厂实例 2,创建解析工厂 3,解析xml startElement() 回调在每次 SAX 解析器遇到元素的起始标记时被调用 characters() 回调为字符数据所调用 endElement() 为元素的结束标记所调用 DefaultHandler类
JAVA解析xml文档;
代码如下
代码如下
package SAX解析; import java.util.ArrayList; 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; /** * SAX解析 1.创建解析工厂 * 2,创建解析工厂实例 * 3,工厂实例来解析XML(本地文件,文件解析器) * * @author Administrator */ public class SAXDemo { ArrayList<Student> list; Student stu; String strValue; public static void main(String[] args) throws Exception { SAXDemo demo = new SAXDemo(); demo.sefa(); } public void sefa() throws Exception { //开始时间 long l1=System.currentTimeMillis(); // 创建工厂实例 SAXParserFactory factory = SAXParserFactory.newInstance(); // 创建解析工厂 SAXParser parser = factory.newSAXParser(); String f = "C:\\Users\\Administrator\\Desktop\\xml\\student2.xml"; MyDefaultHandler hb = new MyDefaultHandler(); // 解析XML parser.parse(f, hb); long l2= System.currentTimeMillis(); long end =l2-l1; //1818ms System.out.println("解析时间:"+end+"ms"); } /** * 创建外部类,解析XML startDocument开始读取文本 startElement开始读取元素 */ class MyDefaultHandler extends DefaultHandler { // 开始读取文本 public void startDocument() throws SAXException { System.out.println("开始解析.."); list = new ArrayList<Student>(); } // 结束文本读取 public void endDocument() throws SAXException { // 遍历队列 for (Student strs : list) { System.out.println(strs); } System.out.println("解析完成.."); } // 开始读取元素 public void startElement(String uri, String localName, String qName, Attributes attr) throws SAXException { if (qName.equals("stu")) { stu = new Student(); list.add(stu); String nums = attr.getValue("num"); String nos = attr.getValue("no"); if (nums != null) { stu.num = Integer.parseInt(nums); } if (nos != null) { stu.no = Integer.parseInt(nos); } } } // 结束元素的读取 public void endElement(String uri, String localName, String qName) throws SAXException { if (qName.equals("name")) { stu.name = strValue; } if (qName.equals("sex")) { stu.sex = strValue; } if (qName.equals("cla")) { stu.cla = strValue; } } // 读取字符串 public void characters(char ch[], int start, int length) throws SAXException { // 创建字符串 strValue = new String(ch, start, length); } } }
相关推荐
xml sax解析
xml
java xmlSAX 解析,简单易使用。
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
绝对可用的SAX解析XML文件项目,费了九牛二虎之力,才找到的好资源,特与大家共享出来。直接导入eclipse就可运行,无需任何配置。
Sax解析XML文件解
本代码是我对博客的xml解析----------Sax解析的代码重写了,一份,给需要的朋友,做参考。
Android SAX 解析XML SAX 解析XML(通用)
Java SAX解析Xml Demo(详细注释)
XML解析之SAX解析DEMO,之前在播控上有介绍,但是代码排版太乱了,这个就是Android4.0网络编程中的SAX解析例子。
Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用
SAX解析超大XML文件 示例代码 SAX解析超大XML文件 示例代码 SAX解析超大XML文件 示例代码
java学习笔记——使用DOM解析XML和使用SAX解析XML
Servlet利用SAX解析XML文档,JAX,JSWDP,Servlet利用SAX解析XML文档
XML通过SAX解析为JSON格式的文档 例子中的类稍微修改可以做做到公用
下面是一个SAX解析XML的示例(有点长,因为详细注解了SAX事件处理的所有方法),SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 。下面的例子可能...
使用java语言对XML文档进行解析的示例,包括DOM,SAX方式,并包括使用jdom和jom4j框架进行XML解析或生成XML文档
sax解析XML方式的代码及特点,sax解析XML方式的代码及特点,sax解析XML方式的代码及特点,sax解析XML方式的代码及特点
Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有源码)Servlet利用SAX解析XML文档(新上传的有...
sax解析xml本地读取xml,希望对你有用