xml——可扩展标记语言,作为数据的载体,可以灵活设置数据格式,使用起来相对便利。本文主要介绍:怎样读取xml中的数据。
SAXReader读取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:@localhost:1521:dbtest</url>
<user-name>drp1</user-name>
<password>drp1</password>
</db-info>
</config>
单例模式解析sys-config.xml文件
import java.io.InputStream;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 采用单例模式解析sys-config.xml文件
* @author Administrator
*
*/
public class XmlConfigReader {
//懒汉式(延迟加载lazy)
private static XmlConfigReader instance = null;
// 定义一个jdbc相关配置信息 对象
private JdbcConfig jdbcConfig = new JdbcConfig();
// 单线程,保证,实例只有一个
public static synchronized XmlConfigReader getInstance() {
if (instance == null) {
instance = new XmlConfigReader();
}
return instance;
}
// 读取xml信息
private XmlConfigReader() {
/**
* SAXReader方式:读一点,处理一点。内存占用就比较少
*/
SAXReader reader = new SAXReader();
// 将xml信息转化为流
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
try {
// 读取
Document doc = reader.read(in);
// 获取xml中的信息
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");
//配置信息 装载到 jdbc对象中
jdbcConfig.setDriverName(driverNameElt.getStringValue());
jdbcConfig.setUrl(urlElt.getStringValue());
jdbcConfig.setUserName(userNameElt.getStringValue());
jdbcConfig.setPassword(passwordElt.getStringValue());
} catch (DocumentException e) {
e.printStackTrace();
}
}
/**
* 返回jdbc相关对象
* @return
*/
public JdbcConfig getJdbcConfig() {
/**
* 在调用‘本类.对象’时,通过构造函数,已给jdbcConfig对象进行了信息装载
* 在通过对象调用本成员函数时可直接将jdbcConfig成员变量返回
*/
return jdbcConfig;
}
}
关于dom4j读取xml的使用过程,请参考上面代码中的详细注释。已做认真注解。
关于生成xml的方法,将抽时间做相关的总结并分享!