一、原理dom4j读xml的思想是,首先把要读的xml文件作为一个document(dom4j的类),这样外部的xml文件就转换成了dom4j可以操作的类型。然后找到document的根节点,在对根节点的字节点操作。在一个document中只有一个根节点,每个节点有0-n个子节点。此时的document节点就是一棵树,我们可以采用深度优先也可以采用广度优先来遍历整个树。我们对每一个节点我们可以获得它的名字和值。
public class DomUtil {
public static Properties parseConfig(URL configName) {
Document document = null;
document = getDocument(configName);
Properties configProperties = null;
if(document != null) {
configProperties = getProperties(document);
}
return configProperties;
}
//遍历ducument,把内容转换成一个Properties文件
private static Properties getProperties(Document document) {
Properties properties = new Properties();
Element root = document.getRootElement();//获得根节点
Iterator<Element> iter = root.elementIterator();
//遍历所有根节点的子节点
for(; iter.hasNext();) {
Element element = iter.next();
String name = element.getName();//获得节点名字
String value = element.getText();//获得节点的值
properties.put(name, value);
}
return properties;
}
//把指定的xml文件读入到程序,转换成一个document
public static Document getDocument(URL configName) {
SAXReader reader = new SAXReader();//读入器
Document document = null;
try {
document = reader.read(configName);//读文件
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
}