Dom4j框架的使用

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。我们说Dom4j是一个框架,框架就是很多很多类的集合,它整合了DOM思想,将文档中的所有内容创建成对象放到内存中,利用事件驱动来对XML实现不同的操作。


    1.Dom4j的引入


    使用Dom4j时,必须首先引入dom4j.jar,如果使用到了它的拓展功能,还需要引入jaxen-1.1-beta-6.jar。


   2.对XML的操作


    要想实现对XML的操作,首先必须读取到XML文档:

    

	SAXReader reader = new SAXReader();
	Document document = reader.read(new File("src/student.xml"));

    ①查询

    

	//1获得根元素
	Element root =  document.getRootElement();
		
	//2遍历根元素下student的子元素
	Iterator<Element> it = root.elementIterator("student");
	while(it.hasNext()){
		Element studentEle = it.next();
		//3获得number属性
		String number =studentEle.attributeValue("number");			
		String name = studentEle.elementText("name");			
		String age = studentEle.elementText("age");			
		String sex = studentEle.elementText("sex");		
	}

    

    ②添加


	//1获取students根元素
	Element root = document.getRootElement();
	//2添加学生元素
	Element student = root.addElement("student").addAttribute("number", "ITCAST_003");
	//3增加子元素
	student.addElement("name").addText("Fanny");
	student.addElement("age").addText("23");
	student.addElement("sex").addText("female");
	//4将新添加的写回到文档中
		
	//1>创建格式化器
	OutputFormat format = OutputFormat.createPrettyPrint();
	//2>创建写入器
	XMLWriter writer = new XMLWriter(new FileWriter("src/studentcopy.xml"),format);
	//3>写入文件
	writer.write(document);
	//4>关闭资源
	writer.close();

    ③删除

    

	//1.获取根元素
	Element root = document.getRootElement();

	//2.遍历student的子元素

	//2.1>方法一
	Iterator<Element> it = root.elementIterator("student");
	while(it.hasNext()){
	Element studentEle = it.next();
	String number = studentEle.attributeValue("number");		
		if(number == "jerry"){
			it.remove();
		}
		}
	//2.2方法二
	List<Element> list =  root.elements("student");
	for(int i = 0; i < list.size(); i++){
		Element studentEle = list.get(i);
		//3.判断学号是否等于被删除学生,是的话就执行删除
		if("itcast_0001".equals(studentEle.attribute("number"))){
			studentEle.getParent().remove(studentEle);
			break;
		}
	}		
	//3.保存到文档
	OutputFormat format = OutputFormat.createPrettyPrint();
	XMLWriter writer = new XMLWriter(new FileOutputStream("src/studentDel.xml"),format);		
	writer.write(document);
	writer.close();

    总结:

    在学习Dom4j的过程中,感觉很像学习js的时候对DOM的操作,实际上,Dom4j也正是在DOM的基础上实现对XML的操作的,所以这一块的学习一定要和之前的HTML DOM结合起来,会事半功倍的。    


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值