Dom4j解析【开发中常用】

需要导包:dom4j-1.6.1.jar   jaxen-1.1-beta-6.jar

------读取---------

package com. atguigu.xml.dom4j;

import java. util.Iterator;

import java. util.List;

import org. dom4j.Document;

import org. dom4j.Element;

import org. dom4j.io.SAXReader;

public class Dom4jParse {

//①查找某一个节点 : 查找id 为007的学员的所有信息

public static void main(String[] args) throws Exception {

//1.获取解析器对象

SAXReader reader = new SAXReader ();

//2.获取Document 对象

Document document = reader.read( "XML/students.xml");

//3.获取XML 文档的根节点对象

Element rootElement = document .getRootElement ();

//4.获取所有的student 元素对象,并进行遍历

List <Element > stuList = rootElement.elements( "student");

Iterator <Element > iterator = stuList .iterator ();

while (iterator .hasNext ()) {

Element stuEle = iterator .next ();

//5.获取每一个student 元素对象的id属性值

String idStr = stuEle .attributeValue ("id");

//6.检测id 属性值是否等于 007

if("007" .equals (idStr )) {

//7.如果等于则获取name值和 age值

Element nameEle = stuEle .element ("name");

Element ageEle = stuEle .element ("age");

String nameStr = nameEle .getText ();

String ageStr = ageEle .getText ();

System .out .println ("name="+nameStr+"
age="+ageStr);

}

}

}

}


------写入-----

package com. atguigu.xml.dom4j;

import java. io.FileWriter;

import org. dom4j.Document;

import org. dom4j.Element;

import org. dom4j.io.OutputFormat ;

import org. dom4j.io.SAXReader;

import org. dom4j.io.XMLWriter;

public class Dom4jEdit {

//②添加某一个节点 :
"姓名:张三丰,id:武当 ,年龄:108

public static void main(String[] args) throws Exception {

//1.获取Document 对象

SAXReader reader = new SAXReader ();

Document document = reader.read( "XML/students.xml");

//2.构建并添加节点内容

/*

<student id=" 武当">

<name> 张三丰</name>

<age>108</age>

</student>

*/

//①获取根节点,在根节点下,添加 student元素<student></student>

//②在新student 中添加id属性 <student
id="武当"></student>

//③在新student 下面添加name元素 <student
id="武当"><name></name></student>

//④在新name 下添加文本<student
id="武当 "><name>张三丰</name></student>

//⑤在新student 下面添加age元素 <student
id="武当"><name> 张三丰</name><age></age></student>

//⑥在新age 下添加文本<student
id="武当 "><name>张三丰</name><age>108</age></student>

Element rootElement = document .getRootElement ();

rootElement

.addElement ("student")

.addAttribute ("id", " 武当")

.addElement ("name")

.addText ("张三丰 ")

.getParent ()

.addElement ("age")

.addText ("108");

//3.将更新的内容写入XML文档

//①获取XMlWriter 对象

//为了使XML 节点内容写入后保持较好的格式,可以传入一个格式对象

OutputFormat format = OutputFormat.createPrettyPrint();

XMLWriter writer = new XMLWriter (new FileWriter("XML/studentsNewPretty.xml"), format);

//②将Document 对象写入

writer .write (document );

//③关闭XMlWriter 对象

writer .close ();

}

}

时间: 2024-12-26 01:01:45

Dom4j解析【开发中常用】的相关文章

项目开发中常用的PHP函数

日期操作 为了便于存储.比较和传递,我们通常需要使用strtotime()函数将日期转换成UNIX时间戳,只有在显示给用户看的时候才使用date()函数将日期转换成常用的时间格式. strtotime()  函数将任何英文文本的日期时间描述解析为 Unix 时间戳 eg: <?php echo(strtotime("now")); echo(strtotime("3 October 2005")); echo(strtotime("+5 hours&

iOS开发中常用第三方库的使用和配置-GDataXML

这篇文章旨在给自己以后需要时能及时的查到,省得每次都去baidu. 1. xml解析库-GDataXML 参考文章:http://blog.csdn.net/tangren03/article/details/7868246 GDataXML下载地址: (1)GDataXML.h/m文件 http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/ (2)DGataDefines.h

在移动开发中常用的开源库总结

1.为什么需要开源库? 我个人觉得有以下几个原因: 1>我们的项目比较赶,但是又用到一些比较复杂的模块,这些模块不是系统自带的,或者说系统自带的满足不了需求,同时在一些开源网站上面又有类似的或者是满足我哦们需求的开源项目和库,拿来就可以减少我们很多的工作量. 2>开源库从另外一方面来说就是为了提高代码的重用性,大家使用了这个开源库,然后提交一些bug,通过大家的力量完善这个开源项目. 2.我常用的开源库? 我使用的一些开源项目主要都是在github上面很热门的项目: 图片加载:Android-

前端开发中常用的几种图片格式及其使用规范

在介绍图片格式之前,首先说一些额外的东西. 矢量图与位图. 矢量图是通过组成图形的一些基本元素,如点.线.面,边框,填充色等信息通过计算的方式来显示图形的.一般来说矢量图表示的是几何图形,文件相对较小,并且放大缩小不会失真. 这里有一点要注意的是web开发中用到的图片都不是矢量图,即使是一个三角形,只有一个边框,都是位图. 那么矢量图在哪里有用到呢? 我目前的知识池就知道一个图标字体,比如 font-awesome 目前在前端的开发中常用的图片格式有三种:jpg,png,gif.这些都是位图.

c++实现游戏开发中常用的对象池(含源码)

c++实现游戏开发中常用的对象池(含源码) little_stupid_child2017-01-06上传 对象池的五要素: 1.对象集合 2.未使用对象索引集合 3.已使用对象索引集合 4.当前使用量 5.最大使用量 http://download.csdn.net/download/little_stupid_child/9730912

开发中常用Fel的写法

直接看代码吧: package javademo; import java.util.HashMap;import java.util.Map; import com.greenpineyu.fel.Expression;import com.greenpineyu.fel.FelEngine;import com.greenpineyu.fel.FelEngineImpl;import com.greenpineyu.fel.context.FelContext;import com.gree

IOS开发中常用的宏定义

有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios7 #define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 判断当前设备是不是iPhone5 #define kScreenIphone5 (([[UIScreen main

WebApp 开发中常用的代码片段

其实这里面的多数都是 iOS 上面的代码.其他平台的就没有去验证了. HTML, 从HTML文档的开始到结束排列: <meta name=”viewport” content=”width=device-width, initial-scale=1.0″/> 让内容的宽度自适应为设备的宽度, 在做Mobile Web时必须加的一条 <meta name=”format-detection” content=”telephone=no”]]> 禁用手机号码链接(for iPhone)

iOS开发中常用的参数传递方法

在iOS开发中常用的参数传递有以下几种方法: 采用代理模式 采用iOS消息机制 通过NSDefault存储(或者文件.数据库存储等) 通过AppDelegate定义全局变量(或者使用UIApplication.定义一个单例类等) 通过控制器属性传递 使用代理方式传递参数的步骤如下: 1.定义协议,协议中定义好传参时所需要的方法 2.目标视图控制器定义一个代理对象 3.源视图控制器实现协议并在初始化目标控制器时指定目标控制器的代理为其自身 4.需要传参的时候在目标窗口调用代理的协议方法

iOS开发中常用的数学函数

/*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(@"结果 %.f", pow(3,2)); //result 9 NSLog(@"结果 %.f", pow(3,3)); //result 27 //开平方运算 NSLog(@"结果 %.f", sqrt(16)); //result 4 NSLog(@"结果 %.f", sqrt(81)); //result 9 //进一 NSLog(@&q