src目录下data-sources.xml文件:<?xml version = '1.0'?>
<DataSource>
<param database="mysql" version="5.0">
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/j1101</url>
<user>root</user>
<password>root</password>
</param>
<param database="Oracle" version="10G">
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@127.0.0.1:1521:orcl</url>
<user>test</user>
<password>test</password>
</param>
</DataSource>
dom4解析例子:
/*采用dom4j 的api来完成操作xml的功能
* */
public class Dom4jDemo {
/* 解析xml文件 */
public void parse() {
SAXReader reader = new SAXReader();
try {
// 创建Document文档对象
Document document = reader.read("data-sources.xml");
// 根据document获取root element (根元素,根节点)
Element root = document.getRootElement();
System.out.println("root-->" + root.getName());
// 根据 root 根节点去获取 子节点(子元素)
List<Element> paramList = root.elements(); // 获取到 param这一级子节点
for (Element param : paramList) {
// 去获取当前节点的全部属性,保存在一个集合中,集合中每个元素都是Attribute(属性)
List<Attribute> paramAttribute = param.attributes(); // 获取到这里来<param
// database="mysql"
// version="5.0">
for (Attribute a : paramAttribute) {// 遍历获取属性的名字以及属性的值
System.out.println("属性:" + a.getName() + "\t 属性值: "
+ a.getValue());
}
// 去获取当前param节点下的子节点
List<Element> childList = param.elements();
for (Element e : childList) {
// 获取子节点中的所有的值
System.out.println("--------元素名:" + e.getName() + "\t 元素值:"
+ e.getText());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 采用dom4j实现添加xml文件
*/
public void testAdd() {
// 创建Document文档对象
Document document = DocumentHelper.createDocument();
// 创建根节点
Element root = document.addElement("DataSource");
// 创建 param节点
Element param = root.addElement("param"); //// 将param添加到根节点
// 为param这个节点添加属性
param.addAttribute("database", "mysql");
param.addAttribute("version", "5.0");
// 为param添加子节点
param.addElement("driver").setText("com.mysql.jdbc.Driver");
param.addElement("url").setText("3456789fghjklcvbnm,.fghjklg");
param.addElement("user").setText("root");
param.addElement("password").setText("root");
// 输出
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriter writer;
try {
writer = new XMLWriter(new FileOutputStream("dom4j-test.xml"),
format);
writer.write(document);//写文件
writer.close();//关闭
System.out.println("成功编写xml文件 ");
} catch (Exception e) {
System.out.println("失败了");
e.printStackTrace();
}
}
/*
* 修改xml文件
* */
public void testUpdate(){
//构造SAXReader对象
SAXReader reader=new SAXReader();
try {//创建Document文档对象
Document document=reader.read("dom4j-test.xml");
//获取根节点
Element root=document.getRootElement();
//获取到param这个节点下的所有
List<Element> paramList=root.elements("param");
for(Element child : paramList){
//判断是否是 mysql这个节点
if("mysql".equals(child.attributeValue("database"))){
child.element("url").setText("jdbc:mysql://localhost:3306/j1101");
child.attribute("version").setText("5.5");
List<Element> childList= child.elements();
// child.remove(child.element("user")); 删除指定的元素名对应的节点
for(Element c : childList){
//如果是user这个元素或者是password这个元素那么就删除
if("user".equals(c.getName()) || "password".equals(c.getName())){
child.remove(c); //删除元素
}
}
}
}
// 输出
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriter writer;
writer = new XMLWriter(new FileOutputStream("dom4j-test.xml"),
format);
writer.write(document);//写文件
writer.close();//关闭
System.out.println("修改编写xml文件 ");
} catch (Exception e) {
System.out.println("修改xml文件 失败");
e.printStackTrace();
}
}
public static void main(String[] args) {
Dom4jDemo d = new Dom4jDemo();
//d.parse();
d.testUpdate();
}
}
分享到:
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
dom4j解析xml实例,dom4j解析xml实例,dom4j解析xml实例,
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
dom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jar
本人自己研究的解析方法,主要用dom4j解析XML文件,进而获取里面的信息
java dom4j解析xml (详细注释)
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
dom4j解析xml,利用反射机制.将解析出来的信息保存到一个类当中
很详细的文档 可以借鉴下 希望对你有帮助
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...
dom4j解析XML文档.ppt
使用dom4j对xml文档进行增删改. 查询就不用说了,使用elements(....)/element(...)/attributeValue()/getText()等方法
一个关于用dom4j解析xml,遍历xml,建立xml的简单例子
Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题
dom4j解析xml字符串实例
dom4j解析xml文件的压缩包,完整版。对jdom进行了封装。包含源码,jar包以及所需的全部内容。
dom4j解析XML所需要的.jar包,包括dom4j-1.6.1及jaxen-1.1-beta-7.jar
dom4j解析xml,连接oracle数据库实例
dom4j解析XML文件格式dom4j解析XML文件格式dom4j解析XML文件格式