使用SAX读取XML文件--(SAX的基础语法练习)
SAX的基本知识: XML的SAX解析: SAX解析原理:加载一点,读取一点,处理一点,对内存要求比较低。 ======DOM解析 VS SAX解析====== 实现的功能:使用SAX读取contact.xml文件: XML文件:contact.xml <?xml version="1.0" encoding="utf-8"?> <contactList> <contact id="001" name="eric"> <name>张三</name> <age>20</age> <phone>134222223333</phone> <email>zhangsan@qq.com</email> <qq>432221111</qq> </contact> <contact id="002" name="jacky"> <name>eric</name> <age>20</age> <phone>134222225555</phone> <email>lisi@qq.com</email> <qq>432222222</qq> </contact> </contactList> 实现功能的处理程序:MyDefaultHandler.java package SAX; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /* * SAX处理程序(如何解析XML文件) */ public class MyDefaultHandler extends DefaultHandler { /* * 开始文档时调用 */ @Override public void startDocument() throws SAXException { System.out.println("MyDefaultHandler.startDocument()"); } /* *开始标签时调用 *@param qName:表示开始标签的标签名 *@param attributes :表示开始镖旗内包含的属性列表 */ @Override public void startElement(String uri,Attributes attributes) throws SAXException { System.out.println("MyDefaultHandler.startElement()-->"+qName); } /* * 结束标签时调用 * @param qName:结束标签的标签名称 */ @Override public void endElement(String uri,String qName) throws SAXException { System.out.println("MyDefaultHandler.endElement()-->"+qName); } /* * 读到文本内容时调用 * @param ch: 表示当前读完的所有文本内容 * @param start: 表示当前文本内容的开始位置 * @param length: 表示当前文本内容的长度 */ @Override public void characters(char[] ch,int start,int length) throws SAXException { //得到当前文本内容 String content = new String(ch,start,length); System.out.println("MyDefaultHandler.characters()-->"+content); } /* * 结束文档时调用 */ @Override public void endDocument() throws SAXException { System.out.println("MyDefaultHandler.endDocument()"); } }
package SAX; import java.io.File; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import org.xml.sax.SAXNotRecognizedException; import org.xml.sax.SAXNotSupportedException; /* * 第一个SAX读取XML文件程序 */ public class Demo_sax { public static void main(String[] args) throws Exception { //1.创建SAXParse对象 SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); //2.调用parse方法 参数一:XML文档;参数二:DefaultHandler的子类 parser.parse(new File("./src/contact.xml"),new MyDefaultHandler()); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |