SAX解析XML文档
2015-07-23 19:53
405 查看
SAX解析XML主要是事件驱动方式从第一个开始解析 不利于快速查找解析
package com.MySax; import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; public class SAXTest { //SAX 解析XML文档 public static void main(String[] args) { File file=new File("e:\\22.txt"); // 生成一个SAX工厂 SAXParserFactory spf=SAXParserFactory.newInstance(); try { SAXParser parser=spf.newSAXParser(); MySAXHandler handler=new MySAXHandler(); parser.parse(file, handler); } catch (ParserConfigurationException | SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package com.MySax; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class MySAXHandler extends DefaultHandler{ // 创建一个类 继承于DefaultHandler @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); System.out.println("解析文档开始"); } @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); System.out.println("解析文档结束"); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub super.startElement(uri, localName, qName, attributes); System.out.println("开始标签"+qName); if (qName.equals("Weather")) { System.out.println(attributes.getValue("name")); } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub super.endElement(uri, localName, qName); System.out.println("结束标签"+qName); } @Override public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); if (ch!=null) { System.out.println("标签内容"+new String(ch,start,length)); }else { System.out.println("null"); } } }
相关文章推荐
- ls命令
- OC的当中常用的类
- 2015 Multi-University Training Contest 2 B Buildings(脑洞题)
- Obkective-C学习笔记(十四)——如何在项目中新建一个类
- 【iOS学习】六、protocol的使用方法
- java 位操作
- [2016面试]海量数据处理
- Zookeeper(1)
- 剑指offer-面试题12.打印1到最大的n位数
- 【机房收费系统】时间控件的使用及显示当前电脑的名称
- dom解析
- 关于TF卡的工作原理
- 状态开关按钮(ToggleButton)和开关(Switch)
- [找规律] 多校联合第二场 B题 Buildings
- Android SurfaceView应用
- Java构造器与多态
- WaitForMultipleObjects()函数
- NYOJ 891 找点
- MAC系统下phpstorm不能基于MAXP使用MongoDB的结局办法
- 滑雪