Dom4j解析XML文件,用于SQL与Java代码分离实现低耦合
- XML文本
<?xml version="1.0" encoding="UTF-8"?>
<!-- 模块服务基本查询信息 -->
<!-- 标签命名方式:sql语句方式+主表名+条件 -->
<sql>
<!-- 系统配置开关值 表:Sysetup -->
<selectSysSetupValue>
<![CDATA[
SELECT value
FROM syssetup
WHERE name = ?;
]]>
</selectSysSetupValue>
</sql>
- Dom4J-XML代码
public static String getSqlByXml(String xmlFolder, String xmlName, String labelName){
String nodeValue = "";
String nodeName = "";
try {
//创建saxReader对象
SAXReader saxReader = new SAXReader();
//通过SAXReader读取xml文件,转换成document对象
String path = ParseXMLFileUtil.class.getResource("/").getFile().toString();
//log.info("系统路径:" + path);
Document document = saxReader.read(new File( path + xmlFolder + "/" + xmlName));
//获取根节点
Element root = document.getRootElement();
//log.info("当前节点名称:" + root.getName() + ",当前节点内容:" + root.getTextTrim() );
//获取子节点对应的内容
Element element = root.element(labelName);
nodeName = element.getName();
nodeValue = element.getTextTrim();
System.err.println("SQL名称:" + nodeName + ",SQL内容:" + nodeValue );
//解析指定节点
} catch (DocumentException e) {
e.printStackTrace();
}
return nodeValue;
}
- Main方法
public static void main(String[] args) {
getSqlByXml("sql/baseSql", "baseInfo.xml", "selectSysSetupValue");
}
- 结果
SQL名称:selectSysSetupValue,SQL内容:SELECT csetvalue FROM sysetup WHERE csetname = ?;