ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dom4j

2022-07-24 11:04:37  阅读:144  来源: 互联网

标签:dom4j Element book io org import


<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book id="book1">
        <name>三国演义</name>
        <price>99.88</price>
    </book>
    <book id="book2">
        <name>西游记</name>
        <price>77.88</price>
    </book>
    <book id="book3">
        <name>李白的诗</name>
        <price>88.88</price>
    </book>
</books>

 

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.Iterator;
import java.util.List;

public class TestDom01 {
    public static void main(String[] args) throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document doc = saxReader.read("books.xml");
        //得到根节点
        Element root = doc.getRootElement();
        System.out.println(root.getName());//root
        //遍历显示所有的数据
        List<Element> list = root.elements("book");
        for (Element book:list){
            Attribute id = book.attribute("id");
            System.out.println("id:"+id.getValue());
            //迭代器
            Iterator<Element> it = book.elementIterator();
            while (it.hasNext()){
                Element element = it.next();
                System.out.println(element.getName()+":"+element.getText());
            }
            System.out.println("----------------");
        }
    }
}

 

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

public class TestDom02 {
    public static void main(String[] args) throws DocumentException, IOException {
        //需求:实现 删除 id="book3"这样的一个节点
        /*
        <book id="book">
        <name>李白的诗</name>
        <price>88.88</price>
        </book>
         */
        //解析xml文件
        SAXReader saxReader = new SAXReader();
        Document doc = saxReader.read("books.xml");
        //得到根节点
        Element root = doc.getRootElement();
        //找到相应的节点
        List<Element> bookList = root.elements("book");
        for (Element book:bookList){
            Attribute id = book.attribute("id");
            if ("book3".equals(id.getValue())){
                book.getParent().remove(book);//删除
            }
        }
        //保存到xml文件
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter writer = new XMLWriter(new FileWriter("books.xml"));
        writer.write(doc);
        writer.close();
        System.out.println("删除成功");
    }
}

 

import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

public class TestDom03 {
    public static void main(String[] args) throws DocumentException, IOException {
        //需求:实现 新增节点
        /*
        <book id="book">
        <name>李白的诗</name>
        <price>88.88</price>
        </book>
         */
        //解析xml文件
        SAXReader saxReader = new SAXReader();
        Document doc = saxReader.read("books.xml");
        //得到根节点
        Element root = doc.getRootElement();
        //新增节点
        Element book = DocumentHelper.createElement("book");
        book.addAttribute("id", "book3");

        Element name = DocumentHelper.createElement("name");//创建节点
        name.setText("李白的诗");//设置属性
        book.add(name);//添加节点

        Element price = DocumentHelper.createElement("price");
        price.setText("88.88");
        book.add(price);
        root.add(book);
        //保存到xml文件
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter writer = new XMLWriter(new FileWriter("books.xml"));
        writer.write(doc);
        writer.close();
        System.out.println("新增成功");
    }
}

 

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

public class TestDom04 {
    public static void main(String[] args) throws DocumentException, IOException {
        //需求 实现 修改 id="book3"这样的一个节点 李白的诗-》李清照的诗句
        SAXReader saxReader = new SAXReader();
        Document doc = saxReader.read("books.xml");
        //得到根节点
        Element root = doc.getRootElement();
        System.out.println(root.getName());//root
        //遍历所有的数据
        List<Element> list = root.elements("book");
        for (Element book : list) {
            //找到对应的节点
            if ("book3".equals(book.attribute("id").getValue())) {
                //迭代器
                Iterator<Element> it = book.elementIterator();
                while (it.hasNext()) {
                    Element element = it.next();
                    //找到要修改的文本
                    if ("李白的诗".equals(element.getText())) {
                        element.setText("李清照的诗");
                        System.out.println(element.getName() + ":" + element.getText());
                        break;
                    }
                }
                break;
            }
        }
        //保存到xml文件
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter writer = new XMLWriter(new FileWriter("books.xml"));
        writer.write(doc);
        writer.close();
        System.out.println("修改成功");
    }
}

 

标签:dom4j,Element,book,io,org,import
来源: https://www.cnblogs.com/linlinmailbox/p/16514067.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有