java dom4j 修改xml文件_java使用DOM4J对XML文件进行增删改查操作

本文实例为大家分享了java使用DOM4J对XML文件进行增删改查操作的具体代码,供大家参考,具体内容如下

源代码:

DOM4j.java

package com.zc.homeWork19;

import java.io.FileWriter;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

import com.zc.homeWork19.Book;

public class DOM4j {

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

/**

* 第一步,得到document对象。

*/

Document document = getDocument();

/**

* 第二步,修改得到的document对象

*/

/**

* 首先,读取功能

*/

List books = readAllElementsFromXMLDocument(document);

traverseBooks(books);

/**

* 其次,修改功能 修改内容:将id为b002的元素的title改为Java Core,Price改为100.01

*/

ModifyInformationOfXMLDocument(document);

/**

* 再者:实现删除功能 删除内容:删除掉id为book1的元素内容。

*/

deleteInformationOfXMLDocument(document);

/**

* 最后:实现添加i新元素功能 添加内容:id为book3,title内容为:凤姐玉照,price内容为10000.00

*/

addNewBookToXMLDocument(document);

/**

* 第三步:将得到的document对象持久化保存到硬盘(XML)

*/

writeToNewXMLDocument(document);

}

/**

* 实现了添加新节点:book的功能

*

* @param document

*/

private static void addNewBookToXMLDocument(Document document) {

Element root = document.getRootElement();

Element newBook = root.addElement("book");

newBook.addAttribute("id", "book3");

Element title = newBook.addElement("title");

title.setText("凤姐玉照");

Element price = newBook.addElement("price");

price.setText("10000.01");

}

/**

* 该方法实现了使用dom4j的删除元素的功能

*

* @param document

*/

private static void deleteInformationOfXMLDocument(Document document) {

Element root = document.getRootElement();

for (Iterator it = root.elementIterator(); it.hasNext();) {

Element book = (Element) it.next();

String id = book.attributeValue("id");

if ("book1".equals(id)) {

Element parent = book.getParent();

parent.remove(book);

}

}

}

/**

* 该方法的作用是修改document中的内容 将id为b002的元素的title改为Java Core,Price改为100.01

*

* @param document

*/

private static void ModifyInformationOfXMLDocument(Document document) {

Element root = document.getRootElement();

List books = root.elements();

for (int i = 0; i < books.size(); i++) {

Element book = (Element) books.get(i);

if ("book2".equals(book.attributeValue("id"))) {

for (Iterator it = book.elementIterator(); it.hasNext();) {

Element node = (Element) it.next();

String type = node.getName();

if ("title".equals(type)) {

node.setText("JAVA Core");

}

if ("price".equals(type)) {

node.setText("100.01");

}

}

}

}

try {

writeToNewXMLDocument(document);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 遍历集合

*

* @param books

*/

private static void traverseBooks(List books) {

for (Iterator iterator = books.iterator(); iterator.hasNext();) {

Book book = iterator.next();

System.out.println(book);

}

}

/**

* 该方法实现了对xml文档的读取功能

*

* @param document

* @return

*/

private static List readAllElementsFromXMLDocument(Document document) {

List books = new ArrayList();

Element root = document.getRootElement();

List list = root.elements();

for (int i = 0; i < list.size(); i++) {

Element book = (Element) list.get(i);

Book b = new Book();

String id = book.attributeValue("id");

List ll = book.elements();

b.setId(id);

System.out.println(id);

for (int j = 0; j < ll.size(); j++) {

Element element = (Element) ll.get(j);

if ("title".equals(element.getName())) {

String title = element.getText();

b.setTitle(title);

System.out.println(title);

}

if ("price".equals(element.getName())) {

String price = element.getText();

double p = Double.parseDouble(price);

b.setPrice(p);

System.out.println(price);

}

}

books.add(b);

}

return books;

}

/**

* 通过document对象将内存中的dom树保存到新的xml文档。

*

* @param document

* @throws Exception

*/

private static void writeToNewXMLDocument(Document document)

throws Exception {

XMLWriter writer = new XMLWriter(new FileWriter(

"src/com/zc/homeWork19/newbooks.xml"));

writer.write(document);

writer.close();

}

/**

* 该方法用于得到document对象。

*

* @return

* @throws Exception

*/

private static Document getDocument() throws Exception {

SAXReader sr = new SAXReader();

Document document = sr.read("src\\books.xml");

return document;

}

}

Book.java

package com.zc.homeWork19;

public class Book {

public String title;

public double price;

public String id;

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String toString() {

return "图书ISBN为:" + id + " 书名为:" + title + " 价格为:" + price;

}

}

book.xml

JAVA编程思想

80.00

JAVA 编程理论

100.00

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值