XML解析之SAX解析过程代码详解

互联网 17-2-16
上一篇谢了解析原理和过程,这里应用代码直观认识这个原理:

新建Demo1类:

import java.io.File;    import javax.xml.parsers.SAXParser;  import javax.xml.parsers.SAXParserFactory;    /**   * 第一个SAX读取xml文件程序   * @author APPle   *   */  public class Demo1 {    	  	public static void main(String[] args) throws Exception{  		//1.创建SAXParser对象  		//  		SAXParser parser = SAXParserFactory.newInstance().newSAXParser();  		  		//2.调用parse方法  		/**  		 * 参数一: xml文档  		 * 参数二: DefaultHandler的子类,默认基类,因此没法new。用子类  		 */  		parser.parse(new File("./src/contact.xml"), new MyDefaultHandler());  		//使用指定的 DefaultHandler 将指定文件的内容解析为 XML。这里一定要自定义MyDefaultHandler类,且在里面实现业务逻辑。不理解先死记住这种模式。  	}    }
import org.xml.sax.Attributes;  import org.xml.sax.SAXException;  import org.xml.sax.helpers.DefaultHandler;  /**   * SAX处理程序(如何解析xml文档)   * @author APPle   *   */  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, String localName, String qName,  			Attributes attributes) throws SAXException {  		System.out.println("MyDefaultHandler.startElement()-->"+qName);  	}  	  	/**  	 * 结束标签时调用  	 * @param qName: 结束标签的标签名称  	 */  	@Override  	public void endElement(String uri, String localName, 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()");  	}  	  }

打印输出,更直观认识sax解析过程。下一篇给出应用案例

以上就是XML解析之SAX解析过程代码详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容

相关资讯