- 浏览: 2730918 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1313)
- JS (65)
- CSS (6)
- html (30)
- dweamweaver工具相关 (2)
- Spry (1)
- DB (103)
- p2p (1)
- java (405)
- .net (3)
- oracle (24)
- struts (18)
- myeclipse (15)
- linux (49)
- SQL SERVER2008 (101)
- jsp (21)
- resume (1)
- other (1)
- ajax (3)
- 云计算 (2)
- excel (32)
- vss (1)
- 警戒 (1)
- eclipse (21)
- c (1)
- dialog designer (7)
- axis1.4 (4)
- webservice (11)
- CTI (1)
- svn (8)
- spring (27)
- tomcat (13)
- log4j (14)
- 网络应用 (7)
- mysql (59)
- bat (4)
- jdbc (1)
- 正式表达式 (1)
- hibernate (27)
- iphone (2)
- 系统应用 (107)
- servlet (3)
- vmware (2)
- php (12)
- JQuery (30)
- avaya (5)
- postgresql (19)
- java面试 (1)
- rose (1)
- Socket (1)
- xml (2)
- PowerDesign (3)
- visio (1)
- jstl (4)
- informix (2)
- assemble (2)
- English Study (2)
- IOS (9)
- CMMI (1)
- outlook (4)
- poi (1)
- hadoop (5)
- SAE (3)
- jor (1)
- jquery mobile (1)
- git (11)
- mina (1)
- ibatis (2)
- wordpress (2)
- 支付宝 (1)
- struts2 (14)
- apns (1)
- html5 (1)
- xampp (2)
- uml (2)
- 项目管理 (1)
- 敏捷开发 (1)
- 设计模式 (2)
- spark (1)
- maven (9)
- 微信公众平台 (1)
- json (2)
- junit (1)
- quartz (2)
- redis (2)
- memcache (1)
- android (3)
- 红杏 (1)
- postman (1)
- mybatis (5)
- iplat4j (1)
- windows (1)
- logback (1)
- Netty (1)
- wiki (1)
- dubbo (1)
- sonar (2)
- jenkins (2)
- mac (10)
- office (4)
- groovy (1)
- intellij (6)
- zookeeper (2)
- 诛仙 (1)
- MQ (2)
- docker (1)
- 2222 (0)
最新评论
-
代码改变生活:
虽然代码敲的头疼的要命,但是依然要感谢你,感谢您共享!!!!开 ...
jxl读取excel日期相差8小时 -
www3837:
org.slf4j.Logger 下载 -
hyztty:
wait_timeout = 86400 interacti ...
druid连接池 -
niaodanwangzi:
连接池可不是给你检测连接状态用的。是为了连接复用,减少连接数。 ...
druid连接池 -
supermine0903:
学习了 啦啦啦
多个路由器同时上网
用到的是DOM4J里面的SAXReader类,需要下载dom4j的jar包。
本文为了方便起见,特地在末尾上传了它的jar包。
此util类的功能是读取xml中的关于数据库配置的URL、用户名、密码。
util类如下:
package com.vastis.util; import java.io.File; import java.util.HashMap; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ReadSpringXmlUtil { public void iterateWholeXML(String filename, HashMap<String, String> hm) throws Exception{ SAXReader saxReader = new SAXReader(); try { Document document = saxReader.read(new File(filename)); Element root = document.getRootElement(); //遍历根结点,即第一层 for (Iterator iter = root.elementIterator(); iter.hasNext();) { Element element = (Element) iter.next(); // 获取id为dataSource的节点的bean if(element!=null){ Attribute ageAttr = element.attribute("id"); if (ageAttr != null && !ageAttr.equals("")) { String id = ageAttr.getValue(); if (id != null && id.equals("dataSource")) { // 遍历第二层(即driverClassName,url,username,password),并进行处理 for (Iterator iterInner = element.elementIterator(); iterInner.hasNext();) { Element elementInner = (Element) iterInner.next(); if(elementInner!=null && !elementInner.equals("")){ //获取name属性 Attribute dsAttr = elementInner.attribute("name"); if(dsAttr!=null && !dsAttr.equals("")) //下面开启遍历第3层,即4个property for (Iterator iterThird = elementInner.elementIterator(); iterThird .hasNext();) { Element elementThird = (Element) iterThird.next(); if(elementThird!=null && !elementThird.equals("")){ if(elementThird.getName().equals("value")){ hm.put(dsAttr.getValue(), elementThird.getText()); // System.out.println("name="+elementThird.getName()); // System.out.println("value="+elementThird.getText()); } } } } } } } } } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); throw new Exception(e); } } }
调用util类的函数如下:将此函数放在main函数中即可跑起来。
/** * 读取数据库配置,从spring.conf.xml中读取 * @throws Exception */ private void configDBInfo() throws Exception{ HashMap<String, String> hashMap= new HashMap<String, String>(); ReadSpringXmlUtil rsxu=new ReadSpringXmlUtil(); rsxu.iterateWholeXML(FILE_PATH,hashMap); try{ if(hashMap!=null && hashMap.size()>0){ for(java.util.Iterator iter=hashMap.keySet().iterator();iter.hasNext();){ Object key=iter.next(); String value=hashMap.get(key); if(((String)key).equals(Constants.URL)){ ReadOnlyConfiger.setUrl(value); }else if(((String)key).equals(Constants.USERNAME)){ ReadOnlyConfiger.setUserName(value); }else if(((String)key).equals(Constants.PASSWORD)){ ReadOnlyConfiger.setPassword(value); } } }else{ System.err.println("数据库配置信息未找到,请查看spring.conf.xml文件中的数据配置信息是否存在!"); } }catch(Exception ex){ System.out.println(ex.toString()); throw new Exception(ex); } }
xml源文件如下:
<?xml version="1.0" encoding="GB2312"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--JDBC数据源配置--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@11.5.56.199:1521/caqa</value> </property> <property name="username"> <value>system</value> </property> <property name="password"> <value>admin</value> </property> </bean> <!-- hibernate 配置文件 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <property name="configLocation"> <value>/WEB-INF/classes/conf/hibernate.cfg.xml</value> </property> </bean> <!-- hibernate 事务工厂 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <!-- hibernate 事务代理 --> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="Create*">PROPAGATION_REQUIRED</prop> <prop key="create*">PROPAGATION_REQUIRED</prop> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="copy*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!--JDBC事务工厂--> <bean id="JDBCtransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref local="dataSource"/> </property> </bean> <!--JDBC 事务代理--> <bean id="JDBCDAOProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="JDBCtransactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- base --> <!-- base:project --> <bean id="projectDAO" class="com.vastis.base.project.dao.impl.ProjectDAOHibernateImpl"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="projectFacade" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.base.project.service.impl.ProjectFacadeImpl"> <property name="projectDAO"> <ref bean="projectDAO"/> </property> </bean> </property> </bean> <bean id="projectHelper" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.base.project.service.impl.ProjectHelperImpl"> <property name="projectDAO"> <ref bean="projectDAO"/> </property> </bean> </property> </bean> <!-- end base:project --> <!--base:param--> <bean id="paramDAO" class="com.vastis.base.param.dao.impl.ParamDAOHibernateImpl"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="paramHelper" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.base.param.service.impl.ParamHelperImpl"> <property name="paramDAO"> <ref bean="paramDAO"/> </property> </bean> </property> </bean> <bean id="paramFacade" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.base.param.service.impl.ParamFacadeImpl"> <property name="paramDAO"> <ref bean="paramDAO"/> </property> </bean> </property> </bean> <!-- end base:param --> <!--ccms:qamonitor--> <bean id="qaMonitorDAOHibernate" class="com.vastis.ccms.qamonitor.dao.impl.QAMonitorDAOHibernateImpl"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="QamonitorFacade" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.ccms.qamonitor.service.impl.QAMonitorFacadeImpl"> <property name="qaMonitorDAOHibernate"> <ref bean="qaMonitorDAOHibernate"/> </property> </bean> </property> </bean> <bean id="QamonitorHelper" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.ccms.qamonitor.service.impl.QAMonitorHelperImpl"> <property name="qamonitorDAOHibernate"> <ref bean="qaMonitorDAOHibernate"/> </property> </bean> </property> </bean> <!-- end ccms:qamonitor--> <!-- start ccms:staff --> <bean id="staffDAO" class="com.vastis.ccms.staff.dao.impl.StaffDAOHibernateImpl"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="staffJDBCDAO" class="com.vastis.ccms.staff.dao.impl.StaffDAOJDBCImpl"> <property name="dataSource"> <ref local="dataSource"/> </property> </bean> <bean id="staffFacade" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.ccms.staff.service.impl.StaffFacadeImpl"> <property name="staffDAOHibernate"> <ref bean="staffDAO"/> </property> <property name="staffDAOJDBC"> <ref bean="staffJDBCDAO"/> </property> </bean> </property> </bean> <bean id="staffHelper" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.ccms.staff.service.impl.StaffHelperImpl"> <property name="staffDAOHibernate"> <ref bean="staffDAO"/> </property> <property name="staffDAOJDBC"> <ref bean="staffJDBCDAO"/> </property> </bean> </property> </bean> <!-- end ccms:staff --> <bean id="MenuManagerFacade" class="com.vastis.menu.service.FacadeImpl"/> <bean id="MenuManagerHelper" class="com.vastis.menu.service.MenuManagerHelperImpl"/> <bean id="securityFacade" parent="txProxyTemplate"> <property name="target"> <bean class="com.vastis.security.service.impl.SecurityFacadeImpl"> </bean> </property> </bean> </beans>
refurl:http://hi.baidu.com/yuletianxia750/blog/item/920dae456c21fb8fb2b7dc90.html
- dom4j-1.6.1.jar (306.5 KB)
- 下载次数: 12
发表评论
-
普通类和线程类的区别
2017-02-18 21:44 1244假设一个类是SubThread,它的init( ... -
最近一些心得
2017-02-08 16:01 8891、Mac starUML在导出png图片时,不要用s ... -
druid连接池
2016-09-14 16:00 5177环境:Ubuntu+Mysql5.5 近期一直报 ... -
罕见问题记录
2016-08-24 17:56 9151、如果提示对catalina.out无权限。 此时 ... -
Java Security
2016-08-24 17:50 952背景: 公司有某些场景需要向第三方提供服务, ... -
kafka java demo
2016-07-10 20:51 6756环境:ubuntu10 2台(32位)+JDK1.8(32 ... -
autowired resource component
2016-05-11 15:23 941背景:同样的bean类型有2个。 尝试用autowire ... -
eclipse 部署spring源码经验之谈
2016-05-08 23:41 16991、junit加载applicationCont ... -
main函数中如何实例化内部类
2016-04-30 22:50 1201需要先new一个父类的对象,然后用父类对象.new 内 ... -
java synchronized 串行
2016-04-30 22:42 1189背景:大家都知道用synchronized来实现加锁 ... -
观察者 Listener是什么意思
2016-02-26 10:40 940从观察者设计模式来看,Listener翻译成中文就是 ... -
UTF-8和Unicode的关系
2016-02-25 16:34 978utf-8只实际了unicode的第一个plane ... -
dubbo
2016-02-18 15:48 7681、配置dubbo.xml,主要是连接到dubbo服务 ... -
datetime格式化
2016-02-18 11:25 837org.joda.DateTime格式化成特定的Str ... -
Java接口中的成员变量为什么必须是public static final?
2016-01-10 16:20 1375必须是final的,否则多个类全继承他后,每个人都改, ... -
抽象类能不能有构造函数
2016-01-10 16:06 1032可以有,但是不能用,即不能new。 refur ... -
workspace workset设置
2016-01-10 15:51 1226背景:当eclipse里面的项目太多时,看上去非常凌 ... -
eclipse一直building workspace
2015-12-10 19:37 804我这里的原因很特殊,是因为在配置spring d ... -
序列化和反序列化
2015-12-10 19:19 920说白了,序列化后 ... -
java.net.bindexception cannot assign requested address jvm_bind
2015-12-10 19:14 1395我的原因是hosts文件中关于127.0.0.1有2个 ...
相关推荐
在这个例子中,我们首先创建了一个`SAXReader`对象,然后读取指定路径的XML文件。通过`read()`方法,我们可以得到一个`Document`对象,它是XML文档的根节点。接着,我们获取根元素,并遍历它的所有子元素,打印它们...
### Java实现XML文档到Word文档转换的关键技术及实践 #### XML简介与应用 XML(Extensible Markup Language,可扩展标记语言)是一种标记语言,旨在定义一套规则,通过这些规则将文档划分为多个部分并对其进行标记...
下面将详细介绍如何使用Java读取XML文件。 1. DOM解析器: DOM解析器将整个XML文件加载到内存中,创建一个树形结构,便于遍历和操作。以下是一个简单的示例: ```java import javax.xml.parsers....
5. **读取XML文档**:如果要解析已存在的XML文件,可以使用`SAXReader`类读取。 ```java SAXReader reader = new SAXReader(); Document doc = reader.read(new File("path_to_xml_file.xml")); ``` 6. **遍历...
下面是一个简单的例子,展示了如何使用DOM4J读取一个XML文件: ```java package com.hsinghsu.testXML; import java.io.File; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document...
本主题将专注于DOM4J库,它是一个灵活且功能强大的Java XML API,用于读取、写入、操作和导航XML文档。DOM4J.jar是这个库的实现,它提供了比标准DOM更高效、更易于使用的API。 DOM4J的使用主要围绕以下几个核心概念...
在示例代码中,首先创建 `SAXReader` 对象,然后使用 `read()` 方法读取 XML 文件。通过 `getRootElement()` 获取根元素,再使用 `elementIterator()` 迭代 `VALUE` 元素,最后通过 `elementText()` 方法提取 `NO` ...
在Java中,读取XML文件是常见的数据处理任务,尤其在处理配置文件、数据交换或存储结构化信息时。本文将详细介绍四种不同的方法来实现这一功能:DOM、DOM4J、JDOM和StAX。 1. DOM(文档对象模型)方法: DOM是一种...
### JAVA读取、删除、修改XML文档 在Java中处理XML文档是一项常见需求,尤其是在集成系统、解析配置文件或处理Web服务时。本文将详细介绍如何使用Java来读取、删除和修改XML文档。 #### 一、环境搭建与依赖库介绍 ...
本篇文章将深入探讨如何使用SAX技术读取XML文档,以及SaxReaderXML.rar压缩包中的相关内容。 首先,SAX解析器的工作方式是逐行扫描XML文档,当遇到元素、属性、文本等内容时,会触发相应的事件回调函数。这种解析...
以下是一个简单的Java程序,展示了如何使用DOM4J进行XML文件的读取、添加、更新和删除操作: ```java import java.io.File; import java.io.FileWriter; import java.util.Iterator; import java.util.List; import...
本文将深入解析一个使用DOM4J进行XML文件读取的例子,并详细阐述其中涉及的关键知识点。 ### DOM4J概述 DOM4J(Document Object Model for Java)是一个开源的、高性能的XML解析器。它提供了类似于DOM的接口,但比...
在这个例子中,`SAXReader.read()`方法会使用SAX解析器读取XML文件,并返回一个`Document`对象,这个对象可以被进一步处理,例如通过XPath查询来获取XML文档的特定部分。 总之,SAXReader结合了SAX解析器的效率和...
在这个例子中,我们创建了一个`SAXReader`实例,然后用它来读取名为"test-xml.xml"的XML文件。解析完成后,我们获取XML文档的根元素,并遍历所有的子元素。对于每个元素,我们打印出其名称、文本内容以及所有属性的...
XML(eXtensible Markup Language)是一种用于标记数据的...无论是在配置文件的读取、服务间的通信,还是在XML文档的生成和解析,Java都提供了强大的支持。了解并熟练掌握这些解析方法对于Java开发人员来说至关重要。
这个“dom4j解析xml例子”压缩包应该包含了一些示例代码、帮助文档和使用说明,旨在帮助初学者快速理解和应用DOM4J。 在XML解析领域,DOM(Document Object Model)是一种将XML文档转换为内存对象树的方法。DOM4J是...
2. 加载XML文件:使用`SAXReader`类读取XML文件并将其转化为`Document`对象。 ```java SAXReader reader = new SAXReader(); File xmlFile = new File("path_to_your_xml_file.xml"); Document document = reader....
DOM4J是一个流行的Java XML API,提供了丰富的功能来读取、写入和操作XML文档。本篇文章将详细介绍如何使用DOM4J库来读取XML文档中的节点。 首先,要使用DOM4J,你需要在项目中引入其对应的JAR文件。你可以从官方...
在这个小例子中,我们将探讨如何利用DOM4J来实现XML文件的读写操作。首先,我们需要确保引入了必要的依赖,包括`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`这两个库。`jaxen`库是DOM4J中解析XPath表达式所必需的。 ...