java SAXParserFactory解析xml文件
2014-09-20 09:55
513 查看
申明:个人学习总结,经供参考,欢迎批评指正与交流
Hanlder类
<pre name="code" class="java">/** * */ package com.XXX.saxparserxml; import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import com.XXX.utils.Constant; /** * @author */ public class ParserXML { private static SAXParser mParser; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub saxParserXml(); } /** * SAX解析XML文件采用事件驱动的方式进行,SAX是逐行扫描文件, * 遇到符合条件的设定条件后就会触发特定的事件,回调你写好的事件处理程序(Hanlder) */ private static void saxParserXml() { // TODO Auto-generated method stub try { //1.获取sax解析器的工厂对象 SAXParserFactory mParserFactory = SAXParserFactory.newInstance(); // 2.通过工厂对象 mParserFactory创建解析器对象mParser mParser = mParserFactory.newSAXParser(); //3.创建事件处理器对象mHanlder Hanlder mHanlder = new Hanlder(); //4.利用指定处理器解析指定文件 mParser.parse(Constant.PARSER_XML_DIR + File.separator + "test.xml", mHanlder); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Hanlder类
<pre name="code" class="java">/** * */ package com.XXX.saxparserxml; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import com.XXX.dbclass.DateBaseClass; /** * @author */ public class Hanlder extends DefaultHandler { private boolean isTest = false; public Hanlder() { // TODO Auto-generated constructor stub } public Hanlder(DateBaseClass dbc) { // TODO Auto-generated constructor stub } /** * 开始节点,根据开始节点名建立相关条件或创建相关对象 * */ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub super.startElement(uri, localName, qName, attributes); if ("tests".equals(qName)) { isTest = true; } else if ("test".equals(qName)){ System.out.println("parser test start"); } } /** * 结束节点,根据结束节点完成相关动作 * */ public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub super.endElement(uri, localName, qName); if ("tests".equals(qName)) { isTest = false; } System.out.println("parser test end"); } /** * 节点间的文字信息,可通过stringbuffer收集每一个节点的文字信息, * 在endElement中清空stringbuffer,收集下一个 * */ public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); String content = new String(ch, start, length); System.out.println("content = " + content); } }
相关文章推荐
- XML 文件解析 SAXParserFactory
- 【Java编程】SAX XML Parser解析、生成XML文件
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- Java眼中的XML--文件读取--2 应用SAX方式解析XML
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- Java Sax解析xml文件
- Java眼中的XML--文件读取--2 应用SAX方式解析XML
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 手写服务器httpserver_xml配置文件_sax解析基础应用JAVA205-206
- Java中解析XML文件之SAX方式
- Java Sax解析XML文件
- Java乔晓松-使用SAX,DOM,pull解析XML文件以及pull解析生成xml文件
- java.lang.ClassNotFoundException: javax.xml.parsers.SAXParserFactory
- Java之xml文件解析二(SAX方式解析xml文件)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- JAVA SAX解析XML文件
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- JAVA SAX解析XML文件
- Java SAX解析器解析XML配置文件,连接数据库
- Java SAX解析器解析XML配置文件