dom4j解析xml
来源:互联网 发布:mac上parallels怎么用 编辑:程序博客网 时间:2024/05/01 19:27
public static void exe(){
Map classMap = new HashMap();
SAXReader reader = new SAXReader();
Document document = null;
File file = new File("f:/sql.xml");
try {
org.dom4j.Document doc = reader.read( file.toURL());
org.dom4j.Element root = doc.getRootElement();
List classElements = root.elements();
for(int i = 0 ; i < classElements.size() ;i ++){
org.dom4j.Element classElement = (org.dom4j.Element)classElements.get(i);
System.out.println(classElement.getName());
List funElements = classElement.elements();
Map funMap = new HashMap();
for(int j = 0 ; j < funElements.size() ; j ++){
org.dom4j.Element funElement = (org.dom4j.Element)funElements.get(j);
//sql节点
List sqlElements = funElement.elements();
Map sqlMap = new HashMap();
for(int k = 0 ; k < sqlElements.size() ; k ++){
org.dom4j.Element sqlElement = (org.dom4j.Element)sqlElements.get(k);
//sql节点的所有属性
Iterator sqlAttrItr = sqlElement.attributeIterator();
String sqlName = null;
while(sqlAttrItr.hasNext()){
org.dom4j.tree.DefaultAttribute att = (org.dom4j.tree.DefaultAttribute)sqlAttrItr.next();
System.out.println("属性名称 "+att.getName()+"===="+att.getValue());
if(att.getName().equals("name")){
sqlName = att.getText();
break;
}
}
if(sqlName == null){
throw new Exception("sql node missing 'name' attribute ! ");
}
sqlMap.put(sqlName, sqlElement.getText());
}
//方法节点属性
Iterator funAttrItr = funElement.attributeIterator();
String funName = null;
while(funAttrItr.hasNext()){
org.dom4j.tree.DefaultAttribute att = (org.dom4j.tree.DefaultAttribute)funAttrItr.next();
if(att.getName().equals("name")){
funName = att.getText();
break;
}
}
if(funName == null){
throw new Exception("function node missing 'name' attribute ! ");
}
//将方法名作为key值 HashMap作为value
funMap.put(funName, sqlMap);
}
//类节点的属性
Iterator classAttrItr = classElement.attributeIterator();
String className = null;
while(classAttrItr.hasNext()){
org.dom4j.tree.DefaultAttribute att = (org.dom4j.tree.DefaultAttribute)classAttrItr.next();
if(att.getName().equals("name")){
className = att.getText();
break;
}
}
if(className == null){
throw new Exception("class node missing 'name' attribute ! ");
}
//将类名作为key值 HashMap作为value
classMap.put(className, funMap);
}
System.out.println(classMap);
System.out.println("当前sql语句: "+((HashMap)((HashMap)classMap.get("SignalDAOJDBCImpl")).get("query")).get("query_user"));
}catch(Exception e){e.printStackTrace();}
}
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<class name="SignalDAOJDBCImpl">
<function name = "add">
<sql name = "add_user">insert into user</sql>
<sql name = "add_dept">insert into dept </sql>
</function>
<function name = "update">
<sql name = "update_leveal">update user set leveal = 2 where level <![CDATA[ < ]]> 1</sql>
<sql name = "update_money">update money set n = 10000 where id <![CDATA[ < ]]> 20000 </sql>
</function>
<function name="delete">
<sql name = "delete_user"> delete user where id = 1</sql>
<sql name = "delete_dept">delete dept where dept_id = 4</sql>
</function>
<function name = "query">
<sql name = "query_user">select * from user</sql>
</function>
</class>
</xml>
- 用DOM4J解析XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 解析xml之--DOM4J
- dom4j解析XML
- 使用 dom4j 解析 XML
- xml文件解析-DOM4J
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- dom4j解析xml方法
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 毕业后的五年拉开大家差距的原因
- 子网掩码
- 数组名与数组地址
- 公司技术管理角度看C++游戏程序员发展
- 判断DataTable是否为空
- dom4j解析xml
- 10年经验分享
- 10条狗试1000瓶水是否有毒
- Windows提示框的制作
- 30岁前男人需要完成的事
- 通过程序修改注册表键值来达到修改IE配置参数的目的
- 职业规划就像软件工程——给刚踏入程序员行列的新人程序员的八点建议(zt)
- 教学思路 C#之类四)构造方法(静态构造方法、this、方法重载)、析构方法(修改新增)
- C++中字符串与String(ZT)