【自动化__持续集成】___java___XML__DOM4操作

一、代码如下

package com.wujianbo.five;import java.io.File;
import java.io.FileOutputStream;
import java.util.List;import javax.annotation.Generated;
import javax.swing.text.html.HTMLDocument.Iterator;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;public class Demo11 {String fileName= System.getProperty("user.dir") + "\\data\\Students.xml";String fileName2= System.getProperty("user.dir") + "\\data\\Person.xml";public static void main(String[] args) throws Exception {// TODO Auto-generated method stubDemo11 demo11= new Demo11();//System.out.println(demo11.fileName);//System.out.println(demo11.fileName2);//demo11.readXml();//demo11.createXml();demo11.deleteXml();}//读取文档内容private void readXml() throws Exception {// TODO Auto-generated method stubSAXReader sr= new SAXReader();org.dom4j.Document doc= sr.read(new File(fileName));//System.out.println(doc);List nameList= doc.selectNodes("/class/student/name");List ageList= doc.selectNodes("/class/student/age");List sexList= doc.selectNodes("/class/student/sex");//System.out.println(nameList);for(int i=0; i<nameList.size(); i++) {String name= ((Element)nameList.get(i)).getTextTrim();System.out.print("name=" + name);String age= ((Element)ageList.get(i)).getTextTrim();System.out.print("age=" + age);String sex= ((Element)sexList.get(i)).getTextTrim();System.out.println("sex=" + sex);System.out.println("==================");}}//新建xml,并写入内容private void createXml() throws Exception {// TODO Auto-generated method stubElement root= DocumentHelper.createElement("Person");Document doc= DocumentHelper.createDocument(root);root.addAttribute("学校", "南大").addAttribute("位置", "江西");Element element1= root.addElement("学生");element1.addElement("姓名").addAttribute("婚姻", "单身").addText("小章");element1.addElement("年龄").addText("21");Element element2= root.addElement("学生");element2.addElement("姓名").addAttribute("婚姻", "单身").addText("小红").addElement("爱好").addText("唱歌");element2.addElement("年龄").addText("22");OutputFormat format= new OutputFormat(" ", true);format.setEncoding("UTF-8");XMLWriter xmlWriter= new XMLWriter(new FileOutputStream(fileName2), format);xmlWriter.write(doc);xmlWriter.close();}//修改xml文件private void modifyXml() throws Exception {// TODO Auto-generated method stubString name= "何国学";String key= "degree";String value= "研究生";SAXReader sr= new SAXReader();org.dom4j.Document doc= sr.read(new File(fileName));List namelist= doc.selectNodes("/class/students/name");java.util.Iterator iterator= namelist.iterator();while(iterator.hasNext()) {Element element= (Element)iterator.next();if(name!=null && name.equals(element.getText())) {Element pe= element.getParent();List childList= pe.elements();for(int i=0; i<childList.size(); i++) {String nodeName= ((Element)childList.get(i)).getName();if(key!=null && key.equals(nodeName) ) {((Element)childList.get(i)).setText(value);}}}}OutputFormat format= new OutputFormat(" ", true);format.setEncoding("UTF-8");XMLWriter xmlWriter= new XMLWriter(new FileOutputStream(fileName), format);xmlWriter.write(doc);xmlWriter.close();}//删除后修改指定节点private void deleteXml() throws Exception {// TODO Auto-generated method stubSAXReader sr= new SAXReader();Document doc= sr.read(new File(fileName2));System.out.println(doc);}}

 

转载于:https://www.cnblogs.com/wujianbo123/p/7492273.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 获取系统时间的时间戳 ,时间戳日期互转,计算日期时间差,获取明天日期,比较时间大小

long creatTimemBindCheck.remainPaymentTime; int shi (int)mBindCheck.remainPaymentTime/(3600*1000); int yu1 (int)mBindCheck.remainPaymentTime%(3600*1000); int fen (int)yu1/(60*1000); int yu2 (int)yu1%(60*1000); int mia (int)yu2/1000; 获取系统时间戳 pub…

mac 下载的破解软件显示 文件已损坏

其实&#xff0c;这是mac系统加强了安全机制&#xff0c;默认不允许用户自行下载安装应用程序&#xff0c;只能从Mac App Store里安装应用。 1、执行下面命令 sudo spctl --master-disable2、打开系统偏好设置 安全性与隐私&#xff0c;若显示任何来源&#xff0c;大功告成

rman全备时,配置项如何设置?

rman 全备设置哪些配置呢&#xff1f;如果是小库的话 下面这些就差不多了。。 CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO %F; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO %F; # defa…

【VBA】多条件去重

Function kaidan(txt)Dim i As IntegerDim arrSet d CreateObject("scripting.dictionary")For i 1 To Worksheets("汇-销").Range("a65536").End(xlUp).Rowarr Worksheets("汇-销").Range("a1:s" & i).Value If arr…

工作108:vue里面wangEdit编辑器使用

WangEdit使用 <template lang"html"><div class"editor"><!--定义的为表头的属性--><div ref"toolbar" class"toolbar"></div><!--定义的为表格的属性--><div ref"editor" class&…

android 查看图片、保存图片

配置photoview-library-1.2.2.jar 到libs photoview-library-1.2.2.jar 下载地址 http://pan.baidu.com/s/1nviEKtj MainActivity import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.i…

Mac 生成SSH Key

苹果系统一个大更新&#xff0c;更新完&#xff0c;很多东西不能用了&#xff0c;&#xff0c;&#xff0c;重新配置一下。 1、查看秘钥是否存在&#xff0c;打开终端查看是否已经存在SSH密钥 cd ~/.ssh如果没有密钥则不会有此文件夹&#xff0c;有则备份删除, 也可以直接删除…

rman 备份后恢复整个数据库文件的操作

回复(Restoring)即是从恢复操作中选择需要的备份。 恢复(Recovery)是将日志和增量备份的改变应用到数据文件&#xff0c;使得数据文件恢复到希望的SCN号或者是指定时间点上。恢复整个数据库操作 使用RESTORE DATABASE和RECOVER DATABASE命令恢复整个数据库 RMAN> STARTUP FO…

工作109:路由菜单项

/*各个路由模块的建立*/ import Home from "/views/Home/Home"; import GlobalLayout from "/layout/GlobalLayout"; import Login from "/views/login/Login";const SYSTEM_MANAGEMENT "系统管理"; const SETTLEMENT_MANAGEMENT &q…

android TextView下划线,圆角边框,数逐字显示,虚线边框, 渐变色背景框, 阴影背景框

长方形 <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/apk/res/android"android:shape"rectangle"><size android:width"10dp" android:height"5dp"…

vscode 遇到的迷之bug nvm is not compatible with the npm config prefix

mac升级系统后&#xff0c;发现每次打开vscode&#xff0c;在命令栏TERMINAL中都会出现不识别npm&#xff0c;把vscode重新安装后&#xff0c;还是不行。 最后&#xff0c;在万能的git上找到了解决方法&#xff0c;之前出错的原因使因为我曾经使用brew install node安装过nod…

bsgs(Baby Steps Giant Steps)算法

BSGS算法&#xff08;Baby Steps Giant Steps算法&#xff0c;大步小步算法&#xff0c;北上广深算法&#xff0c;拔山盖世算法&#xff09; 适用问题 对于式子&#xff1a; $$x^yz(mod_p)$$ 已知x&#xff0c;z&#xff0c;p&#xff0c;p为质数&#xff1b; 求解一个最小非负…

2003服务器远程桌面连不上解决办法

一直都是用XP 连2003服务器&#xff0c;以前从未出现过问题&#xff0c;早二天突然出现提示&#xff1a;什么许可还有多少天到期&#xff0c;也没当回事&#xff0c;想想以前都这样&#xff0c;也没出过什么问题啊&#xff0c;于是就有了今天的一幕&#xff0c;打开远程桌面连接…

vue-cli webpack 打包报错:Unexpected token: punc (()

本来项目完美打包&#xff0c;后来我增加了一个插件vue-ionicons&#xff0c;打包build就是报错&#xff1a; ERROR in static/js/8.017e5cf2d2f1a552890d.js from UglifyJs Unexpected token: punc (() [./node_modules/vue-ionicons/dist/ionicons-mixin.js:7,0][static/js/…

Head First设计模式之备忘录模式

一、定义 不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态 二、结构 备忘录模式中主要有三类角色&#xff1a; 发起人角色&#xff1a;记录当前时刻的内部状态&#xff0c;负责创建和…

SVN 405错误

SVN提交时报http 错误号405&#xff1a;http 405资源被禁止 分析&#xff1a;这是因为服务器上已经存在同名的目录了&#xff0c;所以你提交时会报错。 出现 原因&#xff1a;创建目录的时候&#xff0c;多创建了一个&#xff0c;所以在Server端就删掉一个。 解决办法&#…

centos 生产 ssh-key

注意:必须在用户目录下的.ssh文件夹下生成公私密钥 1、进入目录 cd /root/.ssh2、生成ssh-key ssh-keygen -t rsa3、打开查看 vim /root/.ssh/id_rsa.pub