DOM4J创建、修改和格式xml文件例子(转)

dom4j读取并修改xml文件 今天的需求是读取xml文件,根据现有的实体bean修改xml文件参数。 首先我们需要引入dom4j的依赖,如下: <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> &... 阅读详情
  1. import java.io.File;  
  2. import java.io.FileWriter;  
  3. import java.util.Iterator;  
  4. import java.util.List;  
  5. import org.dom4j.Attribute;  
  6. import org.dom4j.Document;  
  7. import org.dom4j.DocumentHelper;  
  8. import org.dom4j.Element;  
  9. import org.dom4j.io.OutputFormat;  
  10. import org.dom4j.io.SAXReader;  
  11. import org.dom4j.io.XMLWriter;  
  12.   
  13. public class DOM4jDemo {  
  14.   
  15.     public int createXMLFile(String filename) {  
  16.   
  17.         int returnValue = 0;  
  18.   
  19.         Document document = DocumentHelper.createDocument();  
  20.   
  21.         Element booksElement = document.addElement("books");  
  22.   
  23.         booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");  
  24.   
  25.         Element bookElement = booksElement.addElement("book");  
  26.         /** 加入show属性内容 */  
  27.         bookElement.addAttribute("show", "yes");  
  28.         /** 加入title节点 */  
  29.         Element titleElement = bookElement.addElement("title");  
  30.         /** 为title设置内容 */  
  31.         titleElement.setText("Dom4j Tutorials");  
  32.   
  33.         /** 类似的完成后两个book */  
  34.         bookElement = booksElement.addElement("book");  
  35.         bookElement.addAttribute("show", "yes");  
  36.         titleElement = bookElement.addElement("title");  
  37.         titleElement.setText("Lucene Studing");  
  38.         bookElement = booksElement.addElement("book");  
  39.         bookElement.addAttribute("show", "no");  
  40.         titleElement = bookElement.addElement("title");  
  41.         titleElement.setText("Lucene in Action");  
  42.   
  43.         /** 加入owner节点 */  
  44.         Element ownerElement = booksElement.addElement("owner");  
  45.         ownerElement.setText("O'Reilly");  
  46.         try {  
  47.             /** 将document中的内容写入文件中 */  
  48.             XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));  
  49.             writer.write(document);  
  50.             writer.close();  
  51.             /** 执行成功,需返回1 */  
  52.             returnValue = 1;  
  53.         } catch (Exception ex) {  
  54.             ex.printStackTrace();  
  55.         }  
  56.         return returnValue;  
  57.     }  
  58.   
  59.     /** 
  60.      * 修改XML文件中内容,并另存为一个新文件 重点掌握dom4j中如何添加节点,修改节点,删除节点 
  61.      *  
  62.      * @param filename 
  63.      *            修改对象文件 
  64.      * @param newfilename 
  65.      *            修改后另存为该文件 
  66.      * @return 返回操作结果, 0表失败, 1表成功 
  67.      */  
  68.     public int ModiXMLFile(String filename, String newfilename) {  
  69.         int returnValue = 0;  
  70.         try {  
  71.             SAXReader saxReader = new SAXReader();  
  72.             Document document = saxReader.read(new File(filename));  
  73.             /** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */  
  74.             /** 先用xpath查找对象 */  
  75.             List list = document.selectNodes("/books/book/@show");  
  76.             Iterator iter = list.iterator();  
  77.             while (iter.hasNext()) {  
  78.                 Attribute attribute = (Attribute) iter.next();  
  79.                 if (attribute.getValue().equals("yes")) {  
  80.                     attribute.setValue("no");  
  81.                 }  
  82.             }  
  83.             /** 
  84.              * 修改内容之二: 把owner项内容改为Tshinghua 
  85.              * 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type 
  86.              */  
  87.             list = document.selectNodes("/books/owner");  
  88.             iter = list.iterator();  
  89.             if (iter.hasNext()) {  
  90.                 Element ownerElement = (Element) iter.next();  
  91.                 ownerElement.setText("Tshinghua");  
  92.                 Element dateElement = ownerElement.addElement("date");  
  93.                 dateElement.setText("2004-09-11");  
  94.                 dateElement.addAttribute("type", "Gregorian calendar");  
  95.             }  
  96.             /** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */  
  97.             list = document.selectNodes("/books/book");  
  98.             iter = list.iterator();  
  99.             while (iter.hasNext()) {  
  100.                 Element bookElement = (Element) iter.next();  
  101.                 Iterator iterator = bookElement.elementIterator("title");  
  102.                 while (iterator.hasNext()) {  
  103.                     Element titleElement = (Element) iterator.next();  
  104.                     if (titleElement.getText().equals("Dom4j Tutorials")) {  
  105.                         bookElement.remove(titleElement);  
  106.                     }  
  107.                 }  
  108.             }  
  109.             try {  
  110.                 /** 将document中的内容写入文件中 */  
  111.                 XMLWriter writer = new XMLWriter(new FileWriter(new File(  
  112.                         newfilename)));  
  113.                 writer.write(document);  
  114.                 writer.close();  
  115.                 /** 执行成功,需返回1 */  
  116.                 returnValue = 1;  
  117.             } catch (Exception ex) {  
  118.                 ex.printStackTrace();  
  119.             }  
  120.         } catch (Exception ex) {  
  121.             ex.printStackTrace();  
  122.         }  
  123.         return returnValue;  
  124.     }  
  125.   
  126.     /** 
  127.      * 格式化XML文档,并解决中文问题 
  128.      *  
  129.      * @param filename 
  130.      * @return 
  131.      */  
  132.     public int formatXMLFile(String filename) {  
  133.         int returnValue = 0;  
  134.         try {  
  135.             SAXReader saxReader = new SAXReader();  
  136.             Document document = saxReader.read(new File(filename));  
  137.             XMLWriter writer = null;  
  138.             /** 格式化输出,类型IE浏览一样 */  
  139.             OutputFormat format = OutputFormat.createPrettyPrint();  
  140.             /** 指定XML编码 */  
  141.             format.setEncoding("GBK");  
  142.             writer = new XMLWriter(new FileWriter(new File(filename)), format);  
  143.             writer.write(document);  
  144.             writer.close();  
  145.             /** 执行成功,需返回1 */  
  146.             returnValue = 1;  
  147.   
  148.         } catch (Exception ex) {  
  149.             ex.printStackTrace();  
  150.         }  
  151.   
  152.         return returnValue;  
  153.   
  154.     }  
  155.   
  156.     public static void main(String[] args) {  
  157.   
  158.         DOM4jDemo temp = new DOM4jDemo();  
  159.         System.out.println(temp.createXMLFile("f://holen.xml"));  
  160.         System.out.println(temp.ModiXMLFile("f://holen.xml", "f://holen2.xml"));  
  161.         System.out.println(temp.formatXMLFile("f://holen2.xml"));  
  162.     }  
  163.   
  164. }  
小白学习图像处理6——Canny边缘检测算法原理 目录结构一、高斯滤波二、梯度计算1、原理2、代码如下三、非极大值抑制三、双阈值检测四、matlab 的 edge函数五、总结 Canny边缘检测算法主要步骤:高斯滤波、梯度计算、非极大值抑制和双阈值检测。 一、高斯滤波   使用高斯滤波的目的是平滑图像,滤除图像中的部分噪声(因为微分算子对噪声很敏感)。高斯滤波具体办法是生成一个高斯模板,使用卷积进行时域滤波: img = im2double(im... 阅读详情

相关推荐

【OpenCV3】cv::compare()使用详解

cv::compare()主要用于两个图像之间进行逐像素的比较,并输出比较的结果。具体用法如下: cv::compare() bool cv::compare( cv::InputArray src1, // 输入数组1 cv::InputArray src2, // 输入数组2 cv::OutputArray dst, // 输出数组 int cmpop // 比较操作子,见下表 ...

guduruyu的专栏 9759

dom4j 创建缩进换行格式的xml,并输出xml到字符串中

public void createXML() {                   // 创建XML文档树           Document document = DocumentHelper.createDocument();           // 创建根节点items           Element itemsElement = document.addElement(

pingguowang的专栏 1万+

软件自动化测试脚本如何编写,编写自动化测试脚本的几点注意事项

我们需要自动化测试脚本的原因:1、验收测试是一项非常复杂和费力的被用来确保软件质量的环节。它的目的就是使软件能得到充分运行并且能使其符合原始需求。2、测试的目的无非就是满足了两个结果:测试通过或测试不通过。为了能实现每个测试结果,必须要明确每个测试用例。并且对于整个系统而言在合同中必须定义测试用例的失败标准,而且这个失败标准数必须是可接受的。3、测试用例的通过条件必须有一个清晰的标准,标准可以被定...

weixin_39575775的博客 2251

dom4j创建、修改、格式化输出mxl文件

package dom4j_3; import java.io.File; import java.io.FileWriter; import java.io.Writer; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; impor

wangbaojian_good的专栏 1157

一文读懂水利无人机AI识别算法,概念、需求、解决方案

复亚智能的水利无人机AI识别算法通过先进的技术手段,为水利管理提供了高效、精准的解决方案。随着技术的不断进步和应用的深入,复亚智能的解决方案将在更多水利场景中发挥重要作用,助力智慧水利管理的全面升级。该系统通过搭载在无人机上的传感器和摄像头,结合先进的AI识别算法,实现对河道淤积、漂浮物、船只和水质污染等问题的自动检测和监控。基于大量实飞采集的数据,复亚智能的算法经过严格的训练,能够准确识别各种水利问题。复亚智能的系统具有高度的开放性和兼容性,能够与第三方平台和算法无缝对接,满足不同客户的多样化需求。

foiadrone的博客 1197

UE4免费资产库新玩法:Quixel Bridge插件安装与Megascans资源导入全攻略

本文详细介绍了如何在UE4中安装Quixel Bridge插件并导入Megascans资源,帮助开发者快速获取高质量3D资产。通过分步教程和实用技巧,提升游戏或影视场景的制作效率,特别适合需要真实感环境的项目。

weixin_27729671的博客 364

Java解析XML文件(DOM4J解析xml文件)

实现通过DOM4J技术解析XML配置文件,修改xml配置信息,创建xml文件及信息。通过dom4j技术模拟解析web.xml文件的过程。

雾林小妖的博客 2833

利用ADS设计射频功率放大器

利用ADS设计射频功率放大器 任务: 用飞思卡尔公司的功率放大器芯片ATF27s006NT1设计射频功放,芯片频率范围可达450MHz-3.6GHz。 功放指标: (1) 工作频率:500MHz (2) 增益:G>20dB (3) 电源:+28V (4) 最大输出功率:2W(33dBm) 设计思路 (1)安装DesignKit模型; (2)直流DC扫描; (3)稳定性分析; (4)偏置电路设计及整...

UVM频率 3万+

DOM4J解析XML, 修改xml的值

【代码】DOM4J解析XML。

kaige8312的博客 780

Android安全支付(1)-整体架构-keymint

(1)接口定义hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl。keymint是keymaster v4之后的替代设计。所以android 15上最好采用keymint的接口进行硬件功能的对接。同时,我们会集成一款紫光的芯片。3.可以用keyStore.getKey()来获取存储在keyStore中的数据进行加密和解密。四、关于keymint的接口定义和具体实现。

Android系统开发-VR OS-系统安全隐私 1767

魔改短线利器DPO指标,频繁交易也能盈利超30倍?手机同花顺可用!

昨天我们提示了一些高位风险板块,今天来看基本上都在跌幅前列。这一波由AIGC驱动的大行情,短期来看可能已经到了尾声。中期大家可以关注30日线和60日线是否有支撑,这种现象级的生产力变革主导的行情不可能直接就凉了——哪怕相关的企业距离从中获利还很遥远。在A股,当前是否盈利并不是当前股价的主要矛盾。保守的同学不妨关注下昨天的机会列表,里边全是一些超跌的板块,短期可能会延续弱势,但是一旦站上20日线,可能就会有一波超跌反弹的行情。AIGC中的资金外流,大概率会有一些低位板块得到临幸。

量化祛魅师 老Q。 1万+

Dom4j解析xml

1 使用dom4j创建xml文档   Document document = DocumentHelper.createDocument();   通过这句定义一个XML文档对象。   Element root = document.addElement("根节点名称");   通过这句定义一个XML元素,这里添加的是根节点。   Element有几个重要的方法:     addComment : 添加注释     addAttribute : 添加属性     addElement ...

秃了也弱了 5892

第三天:Python基础语法详解

Python代码规范与注释最佳实践 摘要: 本文深度解析Python缩进规则与代码结构的技术规范,包括缩进的底层原理、语法规则和错误处理。详细阐述Python注释系统,涵盖行内注释、文档字符串和类型注释等多种形式,并提供工业级代码组织方案。研究显示,良好的缩进可提升40%的代码识别速度,降低50%的认知负荷。文章还对比了Sphinx、pdoc等主流文档生成工具,给出企业级项目中的注释编写原则和模板建议,帮助开发者构建更可维护的Python代码。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1011

Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)

Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML) 包含具体方法和代码

showswoller的博客 1160

廖雪峰Python教程[完整版]

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Dom4j操作word格式xml文件

1.word文件转xml之后源码文件分析 1.1word内容 其实所有的word内容都在图中的标识处,这里用idea做了收起,看49-7205行说明里面有7000多行 1.2命名空间 很重要,使用dom4j时,带冒号的标签,dom4j无法使用原生api直接进行操作,必须要有对应的命名空间 1.3 一般内容 样式和内容 1.4表格标签 &lt;w:tbl&gt;表示表...

谢文峰的博客 1879

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

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

Dom4j创建修改格式化解析XML文件及中文处理(转)

本文主要讨论了用dom4j解析XML的基础问题,包括建立XML文档,添加、修改、删除节点,以及格式化(美化)输出和中文问题。可作为dom4j的入门资料。1. 下载与安装dom4j是sourceforge.net上的一个开源项目,主要用于对XML的解析。从2001年7月发布第一版以来,已陆续推出多个版本,目前最高版本为1.5。dom4j专门针对Java开发,使用起来非常简单、直观,在Java界,do...

/ty瑞克 263

IDEA的使用指南

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

用dom4j建立,修改XML文档,并解决格式化输出和中文问题

 环境:Dom4j-1.6.1 Dom4j解析需要XML需要的最小类库为:dom4j-1.6.1.jarjaxen-1.1-beta-6.jar             Dom4j Tutorials           Lucene Studing           Lucene in Action    OReilly ---------

woaitiyu的专栏 776

dom4j添加、删除、修改Xml文件内容

准备XML信息如下:&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;students&gt; &lt;student id="88888" phone="15888888888" sex="男"&gt; &lt;name&gt;张三&lt;/name&gt;

Just do it 4240

Dom4J读写XML

 dom4j读写xml文件 首先我们给出一段示例程序:import java.io.File;import java.io.FileWriter;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom

4246

idea中使用dom4j解析XML

java中使用dom4j解析XML 其实在java中解析XML文件的方式有很多,我这里示例就用第三方插件dom4j解析 我使用的IDE是idea 使用dom4j解析XML 1.先去这个地址去下载jar包   https://dom4j.github.io/ 2.在idea中导入dom4j 3.使用dom4j  (不知如何使用dom4j的,可以查看dom4j的官方API) im...

Ein_Blatt的博客 5711

用dom4j建立,修改XML文档,并解决格式化输出和中文

public XMLWriter(OutputStream out) throws UnsupportedEncodingException { //System.out.println("In OutputStream"); this.format = DEFAULT_FORMAT; this.writer

Rya的专栏 1735

简单使用dom4j对xml文件进行输出操作(如何使用dom4j对xml文件进行输出)

上一篇已经介绍了如何使用dom4j对xml进行读取解析,现在谈谈怎么使用dom4j操作xml文件的输出。 首先去下载个DOM4J的jar包,以下两个网站选一个吧,下载后导入项目 http://www.jdom.org/docs/apidocs/index.html www.jdom.org 代码实现过程如下: import java.io.FileWr

小询的博客 1386

dom4j操作XML文件

这里有个xmlwenjian

丑哥最风骚 的专栏 534
上一篇: mysql sql语句大全
下一篇: 使用Dom4j解析XML
bbewx
博客等级 码龄16年 29粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值