1. 添加maven
2 XMLConfig.java
3. 使用
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency><!-- Jaxen is a universal Java XPath engine. --> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.6</version> </dependency>
2 XMLConfig.java
package com.utils;
import java.net.URL;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class XMLConfig {
private Document doc;
public XMLConfig(String path){
try {
URL url = this.getClass().getClassLoader().getResource(path);
SAXReader reader = new SAXReader();
doc = reader.read(url);
} catch (Exception e) {
e.printStackTrace();
}
}
public Document getDocument(){
return doc;
}
public String getString(String path) throws Exception{
Node node =doc.selectSingleNode(path);
if(node!=null)
return doc.selectSingleNode(path).getText();
else
throw new Exception(path + " not exists. ");
}
public int getInt(String path) throws Exception{
Node node =doc.selectSingleNode(path);
if(node!=null)
return Integer.parseInt(doc.selectSingleNode(path).getText());
else
throw new Exception(path + " not exists. ");
}
@SuppressWarnings("unchecked")
public List<Node> selectNodes(String path){
return (List<Node>)doc.selectNodes(path);
}
}
3. 使用
try {
XMLConfig config = new XMLConfig(path);
String drive =config.getString("/configuration/environments/environment/dataSource/property[@name='driver']/@value") ;
String url =config.getString("/configuration/environments/environment/dataSource/property[@name='url']/@value");
String username =config.getString("/configuration/environments/environment/dataSource/property[@name='username']/@value");
String password =config.getString("/configuration/environments/environment/dataSource/property[@name='password']/@value");
int poolsize =config.getInt("/configuration/environments/environment/dataSource/property[@name='poolsize']/@value");
pool = new JDBCPool(url, drive, username, password, poolsize);
} catch (Exception e) {
e.printStackTrace();
}