每日一得--dom4j创建xml及解析xml

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM) 本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。 阅读详情

一,下载dom4j相关jar包

二,相关操作代码

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


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


public class XmlMain {


private static String documentName = "e:xml.xml";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//1,创建xml文档
//createXML();
//addHotel("1", "100", "维也纳酒店", "深圳市宝安区民治", "2015-03-12", "2015-03-13");
//addHotel("2", "150", "客佳旅馆", "深圳市宝安区民治", "2015-03-12", "2015-03-13");

//2,查询xml节点信息
//String[] list = queryHotel("1");
//for(int i=0;i<list.length;i++){
// System.out.println(list[i]);
//}

//3,修改xml信息
//modifyHotel("1", "100", "维也纳酒店", "深圳市宝安区民治", "2015-03-10", "2015-03-11");

//4,删除节点信息
//deleteHotel("2");
}

/*
     * 建立xml文件,并写入根节点
     */ 
    public static void createXML() { 
        // 如果文件存在则不建立xml文件 
        File file = new File(documentName); 
        if (file.exists()) { 
            return; 
        } 
        DocumentFactory factory = new DocumentFactory(); 
        Document document = factory.createDocument(); 
           
        // 建立根节点 
        document.addElement("root"); 
           
        // 建立一个xml文件,将Dom4j树写入xml文件 
        try { 
            FileWriter fw = new FileWriter(file); 
            XMLWriter writer = new XMLWriter(fw); 
            writer.write(document); 
            fw.close();
            
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    }
    
    /*
     * 新添打折宾馆信息
     */ 
    public static void addHotel(String id, String price, String name, String address,  
            String beginTime, String endTime) { 
        SAXReader reader = new SAXReader(); 
        reader.setStripWhitespaceText(true); 
        try { 
            Document document = reader.read(new File(documentName)); 
   
            // 获取根节点 
            Element root = document.getRootElement(); 
   
            // 添加一个新的hotel节点 
            Element hotel = root.addElement("hotel"); 
   
            // 添加和设置新hotel节点信息 
            hotel.addAttribute("id", id); 
            Element priceElement = hotel.addElement("price"); 
            Element nameElement = hotel.addElement("name"); 
            Element addressElement = hotel.addElement("address"); 
            Element beginTimeElement = hotel.addElement("beginTime"); 
            Element endTimeElement = hotel.addElement("endTime"); 
            priceElement.setText(price); 
            nameElement.setText(name); 
            addressElement.setText(address); 
            beginTimeElement.setText(beginTime); 
            endTimeElement.setText(endTime); 
            FileWriter fw = new FileWriter(documentName); 
            XMLWriter writer = new XMLWriter(fw); 
            writer.write(document); 
            fw.close(); 
        } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } catch (DocumentException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        }  
    } 
   
    /*
     * 根据宾馆呢id,查找宾馆打折信息
     */ 
    public static String[] queryHotel(String id) { 
        SAXReader reader = new SAXReader(); 
        String[] queryResult = new String[6]; 
        int index = 0; 
   
        try { 
            Document document = reader.read(new File(documentName)); 
   
            // 获取根节点 
            Element root = document.getRootElement(); 
   
            // 获取根节点包含的所有子节点 
            List nodes = root.elements(); 
            Element e; 
            List sunNodes; 
            Element sunE; 
            for (Object element : nodes) { 
                e = (Element)element; 
   
                // 如果id值与设定的id值相等,则遍历该节点,获取信息 
                if ((e.attribute("id")).getText().equals(id)) { 
                    // 获取当前子节点的所有子节点 
                    sunNodes = e.elements(); 
                    queryResult[index++] = id; 
                    for (Object sunElement : sunNodes) { 
                        sunE = (Element)sunElement; 
                        queryResult[index++] = sunE.getTextTrim(); 
                    } 
                    break; 
                } 
            } 
        } catch (DocumentException e) { 
            e.printStackTrace(); 
        } 
        return queryResult; 
    } 
   
    /*
     * 根据宾馆id,查找相应宾馆,并修改宾馆信息
     */ 
   public static  void modifyHotel(String id, String price, String name, String address,  
            String beginTime, String endTime) { 
        SAXReader reader = new SAXReader(); 
   
        try { 
            Document document = reader.read(new File(documentName)); 
   
            // 获取根节点 
            Element root = document.getRootElement(); 
   
            // 获取根节点包含的所有子节点 
            List nodes = root.elements(); 
            Element e; 
            List sunNodes; 
            for (Object element : nodes) { 
                e = (Element)element; 
                int index = 0; 
   
                // 如果id值与设定的id值相等,则遍历该节点,获取信息 
                if ((e.attribute("id")).getText().equals(id)) { 
                    // 获取当前子节点的所有子节点 
                    sunNodes = e.elements(); 
                    for (Object sunElement : sunNodes) { 
                        if (index == 0) { 
                            ((Element)sunElement).setText(price); 
                        } 
                        if (index == 1) { 
                            ((Element)sunElement).setText(name); 
                        } 
                        if (index == 2) { 
                            ((Element)sunElement).setText(address); 
                        } 
                        if (index == 3) { 
                            ((Element)sunElement).setText(beginTime); 
                        } 
                        if (index == 4) { 
                            ((Element)sunElement).setText(endTime); 
                        } 
                        index++; 
                    } 
                    break; 
                } 
            } 
            FileWriter fw = new FileWriter(documentName); 
            XMLWriter writer = new XMLWriter(fw); 
            writer.write(document); 
            fw.close(); 
        } catch (DocumentException e) { 
            e.printStackTrace(); 
        } catch (IOException e1) { 
            // TODO Auto-generated catch block 
            e1.printStackTrace(); 
        } 
    } 
   
    /*
     * 根据id,删除指定hotel信息
     */ 
   public static void deleteHotel(String id) { 
        SAXReader reader = new SAXReader(); 
   
        try { 
            Document document = reader.read(new File(documentName)); 
   
            // 获取根节点 
            Element root = document.getRootElement(); 
   
            // 获取根节点包含的所有子节点 
            List nodes = root.elements(); 
            Element e; 
            for (Object element : nodes) { 
                e = (Element)element; 
   
                // 如果id值与设定的id值相等,则遍历该节点,获取信息 
                if ((e.attribute("id")).getText().equals(id)) { 
                    // 删除该节点 
                    root.remove(e); 
                    break; 
                } 
            } 
            FileWriter fw = new FileWriter(documentName); 
            XMLWriter writer = new XMLWriter(fw); 
            writer.write(document); 
            fw.close(); 
        } catch (DocumentException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    }
}



liquibase扩展支持达梦数据库 近期项目中需要支持国产数据库,需要liquibase底层支持达梦数据库,记录下操作的详细步骤以便分享。 1.liquibase支持的数据库很多如MySQL, PostgreSQL, Oracle, Sql Server, DB2。但是达梦数据库并不支持,所以需要新建DMDatabase类来适配达梦数据库。达梦语法和Oracle很像所以只需要复制liquibase-core下的Oracle Database做些修改就可了。以下为需要修改的地方 public class DMDatabase extends A 阅读详情

相关推荐

双向全桥隔离dc-dc变换器(DAB)

在全功率范围内,零电压开通优化调制方法能够实现双向全桥隔离dc-dc变换器所有开关的零电压开通,来提升变换器的效率,但其调制模式不连续。当变换器两端电压不匹配时,变换器的电流应力和回流功率将增加,软开关范围将变窄,变换器的效率显著降低。在轻载时,这两种电流优化调制方法采用相同的调制模式;在重载时,最小电流有效值调制方法具有两种调制模式,而最小电流应力调制方法只有一种。双向全桥隔离dc-dc变换器(DAB)和Buck/Boost不同,该变换器通过交流电感进行功率传输,其调制和控制不适合直接借鉴已有的研究。

m0_59329334的博客 3533

XML

package com.citi.training.payee; public class Payee {    private String payeeName;  private String payeeAccount;  private String payeeStatus;    public String getPayeeName() {   return payeeNa

red1208的专栏 278

手把手教你用STM32实现三相永磁同步电机FOC控制(附代码)

本文详细介绍了基于STM32的三相永磁同步电机(PMSM)FOC控制实现方法,涵盖硬件设计、软件架构、参数调试及完整代码解析。通过磁场定向控制(FOC)算法,实现高效精准的电机控制,适用于工业自动化、电动汽车等领域。文章还提供了硬件选型建议、电流采样方案对比及PID参数整定技巧,助力开发者快速掌握FOC控制技术。

weixin_29168675的博客 96

Java 操作XML转JSON数据格式

code>parseText</code>将给定的文本解析为XML文档返回新创建的文档。1、使用new InputSource(new FileInputStream(file))获取文件输入流对象source。3、file.getAbsolutePath()获取文件file的绝对路径。4、最后返回输出到StringWriter的字符串。4、最后返回输出到StringWriter的字符串。2、返回:新创建的Document实例。2、返回:新创建的Document实例。

weixin_45467097的博客 9674

第一百三十九回 介绍三个BLE包

本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。

talk_8的专栏 574

Autosar代码包初识 2 - 如何编译Vector包内Demo工程

Vetcor autosar代码包Demo工程编译,GreenHills,RH850,Autosar,Davinci COnfigurator

weixin_42412049的博客 5184

dom4j遍历解析xml

1,dom4j相对于其他xml解析技术来说,具有性能好、速度快、功能强大、编写简单等特点,所以受到广泛应用。 2,本例基于  dom4j-1.6.1.jar  编写 通用解析示例工具类,架包可点击 该名称下载。 3,工具类不针对特定xml文档结构解析,一招制敌,解析任何文档结构的xml数据,小伙伴们可以通过工具类结合自己实际项目业务需求进行封装加工。 4, 一个x

xiaofa 1861

YOLOv12涨点改进 | 独家创新-注意力改进篇 | ECCV 2024 | YOLOv12引入AgentAttention代理注意力模块,兼顾 Softmax 和线性注意力优点,提高检测精度

🔥本文给大家介绍使用Agent Attention模块改进YOLOv12网络模型。其主要作用是通过引入高效的代理token来减少计算复杂度,同时保留全局上下文建模能力。相比传统的Softmax注意力,Agent Attention通过代理token聚合并广播信息,从而降低了模型在处理高分辨率图像时的计算负担,并显著提高了推理速度。其优势在于保持了目标检测中的全局信息处理能力,同时加速了生成过程,特别是在高分辨率场景下,可以提高检测精度、减少内存消耗,并提升处理速度。

Ai缝合怪、助力小伙伴高效发论文 155

每日一结,XML和 DOM4J

* XML(*****) * XML的简介 * XML 可扩展的标记语言。(和HTML非常类似的) * 可扩展的。 * 自定义的标签。 * XML传输数据,HTML是显示数据。 * XML的版本: XML1.0(使用该版本) XML1.1(不向下兼容) * 做什么用? * 描述有关系的数据 * 应用 * 作为配置文件。 * 可以在系统与系统之间

Mr.ZD的专栏 246

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

weixin_45735391的博客 6万+

一文学会python基础知识

1. python 运行环境 1.1 脚本式环境 1.2 交互式环境 2. python 注释 3. 变量及变量命名 4. 关键词 BIFS 5. 标准操作符 6. 条件判断 7. 循环 8. python 数据类型 9. python 序列 9.1 序列-字符串(str) 9.2 序列-列表 9.3 序列-元组 10. 字典 11. 集合 12. python内存管理及可变、不可变对象 13. 函数 13.1 函数参数 13.2 return and yiled(生成器) 13.3 参数传递处理 ...

weixin_43178406的博客 26万+

获取必应每日一图网址

最近自己捉摸着写了一个获取必应每日一图的网址几行代码,很简陋,但是很有用。这也是我第一次写blog,如有错误还请帮我纠正,谢谢。 需要的第三方库,dom4j来解析xml文件。这个包可以自己去网上搜。这里就不重复累赘。 下面这个网址是从bing抓包出来的,打开返回是一个XML文件,主要bing用来记录图片信息的。我们主要就是从这个xml文件中获取图片的后半截地址,而它的前半截地址是:http:/...

oxgencui的博客 4906

HANA-公司间销售ICS-IDOC系统配置-保姆级配置文档

合作伙伴编号:这个客户表示收票方(销售公司在生产公司中所对应的客户代码,卖方开票,买方收票),也就是咱们在配置消息类型输出的时候合作伙伴的类型的一个具体的客户编码,这个是站在发货工厂的角度去看的,也就是EDI 输出的 BP 合作伙伴的编号;在项目实施过程中经常会遇到关联方交易的问题,有公司间采购的业务场景,也会存在公司间销售的业务场景,本文将着重讲解公司间销售在SAP系统中的实现场景。在这个过程中,销售公司向客户开票产生应收,而生产公司向销售公司开票产生自己的应收,同时销售公司向生产公司产生应付。

我小时候很黑的博客 2392

华夏工程dom4j (2) 编辑

在写这篇文章之前,xxx已经写过了几篇关于改华夏工程主题的文章,想要了解的朋友可以去翻一下之前的文章 这次搞个基金的信息fund.xml放在工程根目录下: <?xml version="1.0" encoding="utf-8" ?> <funds> <fund ID="0"> <name>华夏大盘</name> ...

weixin_30528371的博客 80

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

每日一练

Dom4j解析xml并利用lucene建立引索并搜索 package jim.luceneXML; import java.io.File; import java.io.IOException; import java.util.Iterator; import org.apache.lucene.document.Document; import org.apache.lucen

jimzhai的专栏 552

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

每日学到 33 - DOM

1.DOM 1)保存XML 2)添加DOM节点 3)修改/删除DOM节点 4)删除Brand值为“华为”的标签 2.DOM4J 3.实际使用 1.DOM 2.DOM4J

m0_52588421的博客 199

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

dom4j作数据源的CURD

解析XML 什么是XML 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是I...

sinat_41302694的博客 182

每日分享之-配置文件&日志&多线程

在企业开发过程中,我们习惯把一些需要灵活配置的数据放在一些文本文件中,而不是在Java代码写死 我们把这种存放程序配置信息的文件,统称为配置文件配置文件一般要求有明确的格式,以方便读写操作。

jayzhang_的博客 2523

每日筑基之配置文件&日志&多线程

简单来说就是电脑在做一件事,单线程,在做一件事;多线程,在做多件事。

abcdewn的博客 2272

每日五题

1. int和Integer有什么差别? 答: int是JAVA八大基本数据类型(byte,shor,int,long,char,boolean,float,double)之中的一个。 JAVA语言为八大基本数据提供了包装类,Integer相应是int类型的包装类,就是把int类型包装成Object对象。 2.DOM解析与SAX解析的不同? 答: SAX:仅仅能读,不能改...

weixin_33698823的博客 111

SpringBoot 打包成jar读取resource下的文件

resources/reportxml/BizQuitData.xml <?xml version="1.0" encoding="UTF-8"?> <report name="每日退出明细数据" isExport="true"> <queryPanel> <!-- type:查询框类型 queryType:查...

liuqiang211的专栏 1468

JavaSE进阶-day16思维导图,每日总结

JavaSE进阶-day16思维导图,每日总结

qq_53931872的博客 293

JavaEE课程学习-每日一练

每日一练 9.22-描述一下Java的垃圾回收GC 是用于回收内存空间的,当程序员创建对象时,GC就开始监控对象的地址大小以及使用情况。通常GC采用有效图的方式记录和管理对中的所有对象通过这种方式确确定哪些对象是可达的,哪些对象是不可达的。如果当继续确定某些对象不能访问,他就会回收这些内存空间。同时也可以通过手动执行System.gc通知GC执行,但是不一定能保证一定能执行。 详细介绍可看参考书籍《深入理解 Java 虚拟机》或网上相关链接: https://www.infoq.cn/article

qq_16657805的博客 2086

java buffer 保存图片_JAVA+Windows每日爬取必应壁纸

“我是小羊同学,一个兢兢业业的程序员”一、Jsoup的简单使用  Jsoup是一款Java的HTML解析器,主要用来对HTML解析。就像我们熟知的dom4j一样,都是文档解析器,只不过后者主要用来解析XML文件。  配置好Jsoup的jar包,我们来看一下它简单的使用。import java.io.IOException;import org.jsoup.Jsoup;import or...

weixin_39898550的博客 522

每日五题-java面试题220813

1、如何用 java 代码列出一个目录下所有的文件? 2、XML 文档定义有几种形式?它们之间有何本质区别?解析XML 文档有哪几种方式? 3、你在项目中哪些地方用到了 XML ? 4、阐述 JDBC 操作数据库的步骤。 5、 Statement 和 PreparedStatement 有什么区别?哪个性能更好?...

qq_44843371的博客 140
上一篇: 每日一得--操作excel之jxl
下一篇: 每日一得--对称加密算法之(PBE)
一根筋i
博客等级 码龄16年 7粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值