JAVA解析XML的四种方法--SAX
来源:互联网 发布:双色球参选数据真的吗 编辑:程序博客网 时间:2024/06/05 11:42
优点:不用事先调入整个文档,占用资源少;SAX解析器代码比DOM解析器代码小,适于Applet,下载。
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少。
import java.io.IOException;import java.util.logging.Handler;import javax.xml.parsers.ParserConfigurationException;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;public class SAX {public static void main(String[] args) {SAXParserFactory factory = SAXParserFactory.newInstance();try {SAXParser parser = factory.newSAXParser();//SAXParserHandler handler = new SAXParserHandler();parser.parse("books.xml", new SAXParserHandler());} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class SAXParserHandler extends DefaultHandler {/** * <>---------</>之间 */@Overridepublic void characters(char[] ch, int start, int length) throws SAXException {super.characters(ch, start, length);String value = new String(ch, start, length);System.out.print(value.trim());}@Overridepublic void startDocument() throws SAXException {super.startDocument();System.err.println("----开始解析----\n");}@Overridepublic void endDocument() throws SAXException {super.endDocument();System.out.println("\n----结束解析----");}/** *endElement获得</>之前内容 */@Overridepublic void endElement(String uri, String localName, String qName) throws SAXException {super.endElement(uri, localName, qName);if(qName!="book" && qName!="bookstore")System.out.println("-------" + qName);}/** * startElement获得标签<>内属性 */@Overridepublic void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {super.startElement(uri, localName, qName, attributes);if(attributes.getLength() != 0) {System.out.print(qName + "的属性:----");for(int i=0; i<attributes.getLength(); i++) { System.out.print(attributes.getQName(i) + " = " + attributes.getValue(i)); System.out.println("\n");} }}}
0 0
- JAVA解析XML的四种方法--SAX
- Java-详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- 详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- 详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- 详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- 详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- Java解析xml、解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath
- Java 解析xml的方法:DOM,SAX
- java解析xml文件的2种方法:sax,dom
- 四种方法解析XML文档:Dom、SAX、JDOM、dom4j
- 四种方法解析XML文档:Dom、SAX、JDOM、dom4j
- Java之DOM,SAX,JDOM,DOM4J,四种解析xml方法比较
- Java解析XML文件的四种方式之SAX解析
- java解析xml的四种方法
- Java解析XML的四种方法
- java解析XML的四种方法
- JAVA解析XML的四种方法
- Java 解析XML的四种方法
- 2016年3月英语总结
- poj 2987 Firing 最大权闭合子图
- 关于大型网站技术演进的思考(二)--存储的瓶颈(2)
- PCL系列——如何可视化深度图像
- codeforces 626G
- JAVA解析XML的四种方法--SAX
- 二叉树
- Java多线程
- SparseLM VS2010 X64
- photoshop学习笔记(一)2015-12-4【新浪云搬运】
- 关于大型网站技术演进的思考(一)--存储的瓶颈(1)
- 【Android】通用系列 —— 下拉刷新之继承ListView的下拉刷新
- 自动引入包存在的一些异常:引入不对应同名类
- 标准化欧式距离