栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot集成dom4j操纵Xml文件(4)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot集成dom4j操纵Xml文件(4)

1.快速入门

1.废话不多说了,好困,想睡觉。。。先导依赖

        
        
            dom4j
            dom4j
            1.6.1
        
        
            jaxen
            jaxen
            1.1.1
        
        
            opensymphony
            sitemesh
            2.4.2
        

2.简单的增删改查操作 ,主要是xpath的学习,要具体案例具体分析

package com.guguo.controller;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

@RestController
public class Dom4jController {
    String path="D:\idea_saved\Springboot_jicheng\";

    //xml文件的查询操作
    @GetMapping("/searchXml")
    public void searchXml( ) throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(new File(path + "article.xml"));
        Element rootElement = document.getRootElement();//这个生成的变量指向根标签,这里指的是articles标签
        for (Iterator elementIterator=rootElement.elementIterator(); elementIterator.hasNext();) {
            Element element = elementIterator.next();//获得到了子标签
            System.out.println(element.getName());//获得标签的名字,这里是article
            System.out.println(element.attributeValue("id"));//获取标签内的属性值,这里是获取id属性值
            System.out.println(element.elementText("name"));//获取标签内子标签的值
            System.out.println(element.elementText("collection"));
        }
    }
    //xml文件的添加操作
    @GetMapping("/addXml")
    public void addXml( ) throws DocumentException, IOException {
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(new File(path + "article.xml"));
        Element rootElement = document.getRootElement();//这个生成的变量指向根标签,这里指的是articles标签
        //开始添加标签
        Element element = rootElement.addElement("article").addAttribute("id", "3");//添加子标签
        element.addElement("name").addText("c语言");//创建子标签,向子标签里添加文本
        element.addElement("collection").addText("10");
        element.addElement("hate").addText("8");
        element.addElement("praise").addText("7");
        //将刚才添加的标签通过流的方式添加进文档里
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File(path + "article.xml")), format);
        xmlWriter.write(document);
        xmlWriter.close();
    }

    //xml文件的删除操作
    @GetMapping("/deleteXml")
    public void deleteXml( ) throws DocumentException, IOException {
        //这是固定不变的部分
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(new File(path + "article.xml"));
        Element rootElement = document.getRootElement();//这个生成的变量指向根标签,这里指的是articles标签
        //使用Xpath找到某一个标签,然后删掉它
        Element element = (Element)rootElement.selectSingleNode("//article[@id='3']");
        element.getParent().remove(element);
        //将刚才添加的标签通过流的方式添加进文档里
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File(path + "article.xml")), format);
        xmlWriter.write(document);
        xmlWriter.close();
    }

    //xml文件更新操作
    @GetMapping("/updateXml")
    public void updateXml( ) throws DocumentException, IOException {
        //这是固定不变的部分
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(new File(path + "article.xml"));
        Element rootElement = document.getRootElement();//这个生成的变量指向根标签,这里指的是articles标签
        //在修改一个标签之前首先要找到这个标签
        Element element = (Element)rootElement.selectSingleNode("//article[@id='4']");
        element.element("name").setText("计算机组成原理");
        element.element("name").addAttribute("id","200");
        //将刚才添加的标签通过流的方式添加进文档里
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File(path + "article.xml")), format);
        xmlWriter.write(document);
        xmlWriter.close();
    }

}

3.最后操作的文件样子:



 
   
    java  
    10  
    8  
    7 
    
   
    计算机组成原理  
    10  
    8  
    7 
   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036189.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号