解析MyBatis配置文件#####解析核心配置文件 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package com.deng.testmybatisxml;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;import org.junit.Test;import java.io.InputStream;import java.util.List;public class ParseXmlByDom4jTest { @Test public void testMybatisXmlConfig() throws Exception{ //获取SAXReader 对象 SAXReader reader = new SAXReader(); //获取mybatis-config.xml文件对象 InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("mybatis-config.xml"); Document document = reader.read(is); //获取文件的根标签 Element rootElement = document.getRootElement(); String rootName = rootElement.getName(); System.out.println(rootName);//configuration //获取根标签内部的单个子标签,通过路径定位标签 String xpath = "/" + rootName + "/environments"; Element environments = (Element)document.selectSingleNode(xpath); String environmentsName = environments.getName(); System.out.println(environmentsName);//environments //获得environments的default属性 String Default = environments.attributeValue("default"); System.out.println(Default);//development //根据defaults获取environments中对应的environment标签 String xpath1 = "/" + rootName + "/" + environmentsName + "/environment[@id='"+Default+"']"; Element environment = (Element)document.selectSingleNode(xpath1); //获取environment标签中的子标签 Element transcationManager = environment.element("transactionManager"); System.out.println(transcationManager.getName());//transactionManager //获得其属性 String type = transcationManager.attributeValue("type"); System.out.println(type);//JDBC //不想从根标签下获得其子标签 String xpath2 = "//mappers"; Element mappers = (Element) document.selectSingleNode(xpath2); System.out.println(mappers.getName()); }}//可通过 父标签.element("子标签名");