文档章节

xml的相关操作

李永china
 李永china
发布于 2016/04/20 15:58
字数 576
阅读 13
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

package gz.itcast.a_dom4j_write;


import java.io.File;

import java.io.FileOutputStream;

import java.util.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;

import org.junit.Test;


/**

 *  

<Students>

<Student id="1">

<name>张三</name>

<gender>男</gender>

<grade>计算机1班</grade>

<address>广州天河</address>

</Student>

<Student id="2">

<name>李四</name>

<gender>女</gender>

<grade>计算机2班</grade>

<address>广州越秀</address>

</Student>

</Students>


2.修改id为2的学生的姓名,改为“王丽”


3.删除id为2的学生

 * @author ly

 *

 */

public class Demo4 {


/**

* 1.生成指定xml文档

* @throws Exception

*/

@Test

public void test1() throws Exception{

//1.内存创建xml文档

Document doc = DocumentHelper.createDocument();

//2.写入内容

Element rootElem = doc.addElement("Students");

//2.1 增加标签

Element studentElem1 = rootElem.addElement("Student");

//2.2 增加属性

studentElem1.addAttribute("id", "1");

//2.3 增加标签,同时设置文本

studentElem1.addElement("name").setText("张三");

studentElem1.addElement("gender").setText("男");

studentElem1.addElement("grade").setText("计算机1班");

studentElem1.addElement("address").setText("广州天河");

//2.1 增加标签

Element studentElem2 = rootElem.addElement("Student");

//2.2 增加属性

studentElem2.addAttribute("id", "2");

//2.3 增加标签,同时设置文本

studentElem2.addElement("name").setText("李四");

studentElem2.addElement("gender").setText("女");

studentElem2.addElement("grade").setText("计算机2班");

studentElem2.addElement("address").setText("广州越秀");

//3.内容写出到xml文件

//3.1 输出位置

FileOutputStream out = new FileOutputStream("e:/student.xml");//根据你的需求

//3.2 指定格式

OutputFormat format = OutputFormat.createPrettyPrint();

// 设置编码

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out,format);

//3.3 写出内容

writer.write(doc);

//3.4关闭资源

writer.close();

}

/**

* 2.修改id为2的学生姓名

* @throws Exception

*/

@Test

public void test2() throws Exception{

//1.查询到id为2的学生

Document doc = new SAXReader().read(new File("e:/student.xml"));

//1.1 找到所有的Student标签

Iterator<Element> it = doc.getRootElement().elementIterator("Student");

while(it.hasNext()){

Element stuElem = it.next();

//1.2 查询id为id的学生标签

if(stuElem.attributeValue("id").equals("2")){

stuElem.element("name").setText("王丽");

break;

}

}

//3.1 输出位置

FileOutputStream out = new FileOutputStream("e:/student.xml");

//3.2 指定格式

OutputFormat format = OutputFormat.createPrettyPrint();

// 设置编码

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out,format);

//3.3 写出内容

writer.write(doc);

//3.4关闭资源

writer.close();

}

/**

* 3.删除id为2的学生

* @throws Exception

*/

@Test

public void test3() throws Exception{

//1.查询到id为2的学生

Document doc = new SAXReader().read(new File("e:/student.xml"));

//1.1 找到所有的Student标签

Iterator<Element> it = doc.getRootElement().elementIterator("Student");

while(it.hasNext()){

Element stuElem = it.next();

//1.2 查询id为id的学生标签

if(stuElem.attributeValue("id").equals("2")){

//1.3 删除该学生标签

stuElem.detach();

break;

}

}

//3.1 输出位置

FileOutputStream out = new FileOutputStream("e:/student.xml");

//3.2 指定格式

OutputFormat format = OutputFormat.createPrettyPrint();

// 设置编码

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out,format);

//3.3 写出内容

writer.write(doc);

//3.4关闭资源

writer.close();

}

}


© 著作权归作者所有

李永china
粉丝 12
博文 233
码字总数 174289
作品 0
朝阳
高级程序员
私信 提问
加载中

评论(0)

解析.Net框架下的XML编程技术 (转载)

一.前言: XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了。本文将指导大家如何运用C#语言完成.Net框架下的XML文档...

海东的技术资料
2007/07/18
0
0
注解的那些事(一)| 为什么要使用注解?

注解是 JDK 1.5 引入的功能,相信不少开发者都使用过这个功能,但关于为什么要使用注解,你了解过多少呢? 在 JDK 1.5 之前,Java 还没引入注解,这个时候如果我们要在 Spring 中声明一个 Be...

陈树义
2018/06/06
0
0
Android开发之使用pull解析XML文件

Android已经集成进了Pull解析器,所以无需添加任何jar文件。android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类...

feng_blog
2015/09/02
690
0
使用Dom4j进行XML解析

1概述 在进行ESB集成项目中,使用到了很多系统的接口,这些接口传输的数据大部分都采用了XML的格式,这样在使用ESB开发服务时就需要对XML数据进行解析或拼接的操作,本文以项目中流程服务为例...

数通畅联
2016/10/24
23
0
Python心得基础篇【5】模块

模块,用一砣代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能...

osc_6zu0q9s3
2018/03/02
2
0

没有更多内容

加载失败,请刷新页面

加载更多

QT 执行shell命令

(1)首先包含头文件: #include <QProcess> (2)执行shell命令: QProcess::execute("ls");

悲催的古灵武士
6分钟前
9
0
osgEarth使用笔记3——加载倾斜摄影数据

目录 1. 概述 2. 详论 2.1. 位置 2.2. 着色 2.3. 其他 3. 结果 4. 参考 1. 概述 我在《OSG加载倾斜摄影数据》这篇博文中论述了如何通过OSG生成一个整体的索引文件,通过这个索引文件来正确显...

osc_7oc4d1en
7分钟前
11
0
cesium加载gltf模型点击以及列表点击定位弹窗

前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材。 之前有部分订阅者咨询我,...

osc_cx8uhydz
8分钟前
8
0
思维导图软件如何插入图片?具体步骤?

学习思维导图制作的过程中,会遇到很多没有学过的知识,需要我们不断地去改进和学习,这样增强自己的学习能力,才能更好地掌握制图软件。以后帮助我们快速方便地完成制图,今天我们就要来看看...

深蓝月上
8分钟前
10
0
Notepad++ 列块模式编辑,替换换行符

一、列块模式编辑: 1、数据准备 2、按住 “Alt + 鼠标左键” 选择需要列块模式编辑的区域,可以看到多了一条竖线 3、之后批量可以添加,修改内容 二、替换换行符 上面说了列块模式的编辑,后...

osc_itgved4p
9分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部