java删除xml文件内容

一、依赖

  <dependency>
      <groupId>org.dom4j</groupId>
      <artifactId>dom4j</artifactId>
      <version>2.1.3</version>
      <scope>compile</scope>
    </dependency>

 二、待操作XML文件

<mymvc>
    <actions>
        <action name="list" class="controller.List">
            <result name="toListJSP">
                /list.jsp
            </result>
            <result name="toShowUserinfoList" type="'redirect">
                showUserinfoList.ghy
            </result>
        </action>
        <action name="showUserinfoList" class="controller.ShowUserinfoList">
            <result name="toShowUserinfoListJSP">
                /showUserinfoList.jsp
            </result>
        </action>
    </actions>
</mymvc>

三、操作节点

package org.example.xmltest;

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 Delete {
    public static void main(String[] args) throws DocumentException, IOException {
        SAXReader reader = new SAXReader();
        //1、读取XML文件
        Document document = reader.read(reader.getClass().getResourceAsStream("/struts.xml"));
        //2、获取根元素
        Element rootElement = document.getRootElement();
        //获取根元素的所有子元素
        List<Element> rootChildren = rootElement.elements();
        for (Element child : rootChildren) {
            List<Element> childChildren = child.elements();
            if (childChildren != null && childChildren.size() > 0) {
                for (Element childChild : childChildren) {
                    //获取name属性
                    Attribute name = childChild.attribute("name");
                    if (name != null) {
                        //如果属性存在,删除
                        childChild.remove(name);
                    }
                    List<Element> elements = childChild.elements();
                    for (Element element : elements) {
                        //删除子元素
                        childChild.remove(element);
                    }
                }
            }
        }
        //创建输出格式
        OutputFormat format = OutputFormat.createPrettyPrint();
        //XML写入工具
        XMLWriter writer = new XMLWriter(new FileWriter("delete.xml"), format);
        //写入文档至XML文件
        writer.write(document);
        //关闭流
        writer.close();
    }
}

四、删除后节点及属性后生成的文件

<?xml version="1.0" encoding="UTF-8"?>

<mymvc> 
  <actions> 
    <action class="controller.List"></action>  
    <action class="controller.ShowUserinfoList"></action> 
  </actions> 
</mymvc>

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设你使用的是 MyBatis 框架,以下是一个示例的批量删除XML 文件: ``` <delete id="deleteByIdList"> DELETE FROM table_name WHERE id IN <foreach collection="idList" item="id" open="(" separator="," close=")"> #{id} </foreach> </delete> ``` 这个 XML 文件中定义了一个名为 `deleteByIdList` 的 SQL 语句,它使用了 MyBatis 的 `foreach` 标签来实现批量删除。 具体地,`foreach` 标签的 `collection` 属性指定了要遍历的集合,这里是 `idList`;`item` 属性指定了遍历时的元素名,这里是 `id`;`open` 属性指定了遍历时的开头,这里是左括号 `(`;`separator` 属性指定了元素之间的分隔符,这里是逗号 `,`;`close` 属性指定了遍历时的结尾,这里是右括号 `)`。在 `foreach` 标签中,使用 `#{id}` 占位符来引用 `id` 元素的值。 这个 SQL 语句中的 `table_name` 和 `id` 字段名需要根据你的实际情况进行修改。在 Java 中,你可以通过调用 MyBatis 的 `delete` 方法来执行这个 SQL 语句,同时传入一个 `idList` 参数,它是一个包含要删除的 id 值的列表。例如: ``` List<Integer> idList = Arrays.asList(1, 2, 3); int count = sqlSession.delete("deleteByIdList", idList); ``` 这里,`sqlSession` 是 MyBatis 的会话对象,`deleteByIdList` 是 SQL 语句的 ID,`idList` 是一个包含要删除的 id 值的列表。执行 `sqlSession.delete` 方法时,MyBatis 会自动将 `idList` 参数传递给 XML 文件中的 `idList` 属性,并将 `#{id}` 占位符替换为实际的 id 值。执行结果是返回被删除的记录数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值