IDEA中解析xml文件,进行删除操作时遇到的问题

之前未接触过java代码(编程方面知识匮乏),求各位帮忙指点一下这里,以下是代码

img


package com.shk.xml;

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.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

public class XMLDeleteTest1 {

        public static void main(String[] args) {

            int deleteId = 1004;
            File file = new File("data/student.xml");
            SAXReader saxReader = new SAXReader();
            XMLWriter xmlWriter = null;
            try {
                Document document = saxReader.read(file);
                List<Element> ordEleList = document.selectNodes("/orders/order");
                for ( Element ordEle = ordEleList) {
                    if (ordEle.elementText("id").equals(String.valueOf(deleteId))) {
                        ordEle.getParent().remove(ordEle);
                        break;
                    }
                }
                OutputFormat outputFormat = OutputFormat.createPrettyPrint();
                xmlWriter = new XMLWriter(new FileWriter(file), outputFormat);
                xmlWriter.write(document);
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (xmlWriter != null){
                    try {
                        xmlWriter.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

        }
}

for里面的 = 换成 : 再试试

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.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

public class XMLDeleteTest1 {

    public static void main(String[] args) {

        int deleteId = 1004;
        File file = new File("data/student.xml");
        SAXReader saxReader = new SAXReader();
        XMLWriter xmlWriter = null;
        try {
            Document document = saxReader.read(file);
            List<Element> ordEleList = document.selectNodes("/orders/order");
            for (Element ordEle : ordEleList) {
                if (ordEle.elementText("id").equals(String.valueOf(deleteId))) {
                    ordEle.getParent().remove(ordEle);
                    break;
                }
            }
            OutputFormat outputFormat = OutputFormat.createPrettyPrint();
            xmlWriter = new XMLWriter(new FileWriter(file), outputFormat);
            xmlWriter.write(document);
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (xmlWriter != null) {
                try {
                    xmlWriter.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/742547
  • 你也可以参考下这篇文章:idea中 Java xml注释缩进问题 解决方案
  • 除此之外, 这篇博客: Java之MyBatis【IDEA版】(一篇文章精通系列)增删改查【XML开发】 - 所有知识点(大全)中的 (3)创建Orders实体以及数据库表 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
    在orders表当中添加一些数据
    在这里插入图片描述

    在这里插入图片描述

    package cn.itbluebox.domain;
    
    import java.util.Date;
    
    public class Orders {
    
        private int id;
        private Date ordertime;
        private double total;
    
        //代表当前订单从属于哪一个客户
        private User user;
    
        public Orders() {
        }
    
        public Orders(int id, Date ordertime, double total, User user) {
            this.id = id;
            this.ordertime = ordertime;
            this.total = total;
            this.user = user;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public Date getOrdertime() {
            return ordertime;
        }
    
        public void setOrdertime(Date ordertime) {
            this.ordertime = ordertime;
        }
    
        public double getTotal() {
            return total;
        }
    
        public void setTotal(double total) {
            this.total = total;
        }
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        @Override
        public String toString() {
            return "Order{" +
                    "id=" + id +
                    ", ordertime=" + ordertime +
                    ", total=" + total +
                    ", user=" + user +
                    '}';
        }
    }
    
    
  • 以下回答由chatgpt基于相关博客总结生成:

    很抱歉,根据您提供的参考资料,未能找到与问题相关的信息,更无法确定代码中的删除操作是指哪个部分。请提供更具体的错误信息、代码和环境等信息,以便更好地解决您的问题。