首页 > 代码库 > 在java项目中怎样利用Dom4j解析XML文件获取数据
在java项目中怎样利用Dom4j解析XML文件获取数据
在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据。比方数据库的连接字符串儿等。这个时候在读取配置文件的时候。我们一般会用到一个雷configuration,通过这个类来进行直接读取,能够说这是程序中直接封装好的,包含配置文件里书写的格式等等。那么,假设。想要在配置文件里写一些其它的数据,直接以XML文件的格式进行书写。这个时候在后台怎样读取XML文件里的数据呢?这里利用Dom4j来解析XML文件里连接oracle数据库的xml数据。
在使用之前,首先要在自己的项目中把Dom4j-1.6.1.jar文件包复制到项目中去。
1、创建一个xml文件
<?xml version="1.0" encoding="UTF-8"?
> <config> <db-info> <driver-name>oracle.jdbc.driver.OracleDriver</driver-name> <url>jdbc:oracle:thin:@localhost:1521:bjpowernode</url> <user-name>drp</user-name> <password>drp</password> </db-info> </config>
2、新建一个用来读取Xml文件的一个控制台应用程序
详细实现例如以下:
import java.io.InputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader;
public static void main(String[] args) { SAXReader reader=new SAXReader(); //通过获得当前线程,然后获取当前的类载入器,来获取相应的资源 InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml"); try { //read之后会返回一个document对象 Document doc=reader.read(in);//这里也能够直接读取文件reader.read(new File("sys-config.xml")) //通过document对象获取xml文件的节点元素,返回element,通过xpath路径获取 Element driverNameElt=(Element) doc.selectObject("/config/db-info/driver-name"); Element urlElt=(Element) doc.selectObject("/config/db-info/url"); Element userNameElt=(Element) doc.selectObject("/config/db-info/user-name"); Element passwordElt=(Element) doc.selectObject("/config/db-info/password"); //获取标签中的值 String driverName=driverNameElt.getStringValue(); String url=urlElt.getStringValue(); String username=userNameElt.getStringValue(); String password=passwordElt.getStringValue(); System.out.println(driverName);
System.out.println(url);
System.out.println(username);
System.out.println(password);
} catch (DocumentException e) { }
}
3、查看效果:
4、知识点联系
在利用Dom4j解析XML过程中,我在获取节点的时候用到了XPath路径。这个获取到的额每个节点都是一个Element类型。因此,我们获取到节点后能够对该节点进行操作,增删改查等操作。
这里对XML文件的操作,类似于对HTML文档的操作,整个文件事实上是一个document类型的文档,里面的每个元素都是一个Element类型的元素,对它的非常多操作事实上是和操作HTML文档中的元素是类似的。
在java项目中怎样利用Dom4j解析XML文件获取数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。