读取XML文件常用的有四种方式,W3C ,JDom ,Dom4j 等,这几种读取方式中,Jdom比Dom4j更简单,但是效率并没有Dom4j好,所以我们更多的采用Dom4j来读取Xml文件。
常见的这几种读取XML文件方法都是第三方开发的,对于XML文件的读取方式的API文档,我们只需简单了解就可以了,但是对于Sun公司发表的标准的J2EE以及J2SE的API,我们应该尽可能熟练的掌握。有事没事,你就读读这些文档,对你好处很大的。
XML的两种访问方式:(a)DOM是面向模型的,一次将XML文档加入内存,编程简单,适合小型文件的解析。(b)SAX是面向实践的,读一部分解析一部分,编程复杂一些,适合大型文件的解析。
/**
* 解析XMl文件
* @author CX
*
*/
public class xmlReader {
private static xmlReader instance=null;
private JdbcConfig jdbcConfig=null;
private xmlReader(){
try {
SAXReader reader=new SAXReader();
InputStream inputStream=Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
Document doc=reader.read(inputStream);
Element driverNameElt=(Element)doc.selectObject("/config/db-info/driver-name");
Element urlElt=(Element)doc.selectObject("/config/db-info/url");
Element usernameElt=(Element)doc.selectObject("/config/db-info/user-name");
Element passwordElt=(Element)doc.selectObject("/config/db-info/password");
jdbcConfig=new JdbcConfig();
jdbcConfig.setDrivename(driverNameElt.getStringValue());
jdbcConfig.setUrl(urlElt.getStringValue());
jdbcConfig.setUsername(usernameElt.getStringValue());
jdbcConfig.setPassword(passwordElt.getStringValue());
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static synchronized xmlReader createInstance(){
if(instance==null){
instance=new xmlReader();
}
return instance;
}
/**
* 返回JDBC相关配置
* @return
*/
public JdbcConfig getJdbcConfig(){
return jdbcConfig;
}
public static void main(String[] args){
JdbcConfig jdbcConfig=xmlReader.createInstance().getJdbcConfig();
System.out.println(jdbcConfig.getDrivename());
System.out.println(jdbcConfig.getUrl());
System.out.println(jdbcConfig.getUsername());
System.out.println(jdbcConfig.getPassword());
}
}