DRP项目(七)----XML的四种解析器之SAX解析XML

来源:互联网 发布:php 授权验证系统源码 编辑:程序博客网 时间:2024/06/06 01:52
 我的xml文件代码:文件名:sys-config.xml
<?xml version="1.0" encoding="UTF-8"?><config>    <db-info>         <driver-name>oracle.jdbc.driver.OracleDriver</driver-name>        <url>jdbc:oracle:thin:@192.168.24.181:1521:BJPOWERNODE</url>        <user-name>drp1</user-name>         <password>drp1</password>    </db-info></config>

首先声明一下我在这只写读取过程中的简要原理,至于加上单例模式,这个自己可以加上,但是我写的是实现解析xml的原理。

这里只得到<driver-name>中的东西

SAX解析XML文档

 package com.bjpowernode.drp.util;  import java.io.File; 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;  /**  * SAX实现读取配置文件  *   * */ public class testXML extends DefaultHandler{ private String tagValue;  public static void main(String[] args)  {      String filename = "src/sys-config.xml";      SAXParserFactory spf = SAXParserFactory.newInstance();      try     {          SAXParser saxParser = spf.newSAXParser();         saxParser.parse(new File(filename), new testXML());      }      catch (Exception e)     {         e.printStackTrace();     }  }  /**  * 在解释到一个开始元素时会调用此方法.但是当元素有重复时可以自己写算法来区分  *  */  public void startElement(String uri, String localName, String qName,      Attributes attributes) throws SAXException {     }   /** * 在遇到结束标签时调用此方法  */  public void endElement(String uri, String localName, String qName) throws SAXException      {      if(qName=="driver-name"){             System.out.println(tagValue);     }     }   /**  * 所有的XML文件中的字符会放到ch[]中 */  public void characters(char ch[], int start, int length)  throws SAXException      {          tagValue=new String(ch,start,length).trim();      }  }


 

原创粉丝点击