dom4j解析(项目常用)的增删改查

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <书架>
 3     <书>
 4         <书名 name="vvvb">何茂赟自传</书名>
 5         <作者>何茂赟</作者>
 6         <售价>500.00</售价>
 7     <售价>1234元</售价><售价>1234元</售价></书>
 8     <书>
 9         <书名>何茂赟自传2</书名>
10         <作者>何茂赟</作者>
11         <顾问>习大大和彭妈妈</顾问><售价>100.00元</售价>
12     </书>
13 </书架>
  1 package dom4j;
  2
  3 import java.io.File;
  4 import java.io.FileOutputStream;
  5 import java.io.IOException;
  6 import java.util.List;
  7
  8 import org.dom4j.Document;
  9 import org.dom4j.DocumentException;
 10 import org.dom4j.DocumentHelper;
 11 import org.dom4j.Element;
 12 import org.dom4j.io.OutputFormat;
 13 import org.dom4j.io.SAXReader;
 14 import org.dom4j.io.XMLWriter;
 15 import org.junit.Test;
 16
 17 public class demo {
 18
 19     @Test
 20     // 得到第二本书的书名:<书名>何茂赟自传2</书名>
 21     public void read() throws DocumentException
 22     {
 23         //这两句程序根据手册写出,是固定的,目的是获取读取器
 24         SAXReader reader = new SAXReader();
 25         Document document = reader.read(new File("src/dom4j/shu.xml"));
 26
 27         Element root=document.getRootElement();//得到xml的根节点(标签)
 28         //注:“.getRootElement”是得到根节点,但是“.elements”是得到子节点(标签)
 29         Element book=(Element) root.elements("书").get(1);//得到第二本书的根节点(标签):<书>
 30         String value=book.element("书名").getText();//得到根节点的子节点<书名>的内容
 31         System.out.println(value);
 32
 33     }
 34     @Test
 35     // 得到第一本书的书名的属性:<书名 name="vvvb">何茂赟自传</书名>
 36     public void readattr() throws DocumentException
 37     {
 38         //这两句程序根据手册写出,是固定的,目的是获取读取器
 39         SAXReader reader = new SAXReader();
 40         Document document = reader.read(new File("src/dom4j/shu.xml"));
 41
 42         Element root=document.getRootElement();//得到xml的根节点
 43         Element book=(Element) root.elements("书").get(0);//得到第一本书的根节点(标签):<书>
 44         //注:“.attributeValue”是得到书签的属性,不是“getattribute”,与jaxp方式不同,要损手不同方法的各自api手册
 45         String value=book.element("书名").attributeValue("name");//得到根节点的子节点<书名>的内容
 46         System.out.println(value);
 47
 48     }
 49     @Test
 50     // 在第一本书里添加<售价>1234元</售价></书>   (不指定位置)
 51     public void add() throws DocumentException, Exception
 52     {
 53         //这两句程序根据手册写出,是固定的,目的是获取读取器
 54         SAXReader reader = new SAXReader();
 55         Document document = reader.read(new File("src/dom4j/shu.xml"));
 56
 57         Element root=document.getRootElement();//得到xml的根节点
 58         Element book=(Element) root.elements("书").get(0);//得到第一本书的根节点(标签):<书>
 59         book.addElement("售价").setText("1234元");//在<书>的节点下面创建新的子节点(标签)<售价>
 60
 61         OutputFormat format= OutputFormat.createPrettyPrint();//创建一个格式
 62         format.setEncoding("UTF-8");//格式设定为“UTF-8”
 63
 64         //以下代码参考手册固定写出,把添加的内容更新到XML文档中,需要强调的是由于存在更新写入时的读码问题,
 65         //需要强调的是由于存在更新写入时的读码问题,此处固定写法:自己设置一个格式如上,下用FileOutputStream输出
 66         XMLWriter writer = new XMLWriter(new FileOutputStream("src/dom4j/shu.xml" ));
 67         writer.write( document );
 68         writer.close();
 69     }
 70     @Test
 71     // 在第二本书的指定位置添加<顾问>习大大</顾问>
 72     public void add1() throws DocumentException, Exception
 73     {
 74         //这两句程序根据手册写出,是固定的,目的是获取读取器
 75         SAXReader reader = new SAXReader();
 76         Document document = reader.read(new File("src/dom4j/shu.xml"));
 77
 78         Element root=document.getRootElement();//得到xml的根节点
 79         Element book=(Element) root.elements("书").get(1);//得到第二本书的根节点(标签):<书>
 80         List list=book.elements();//按顺序得到所有的子节点(标签)  (书名,作者,售价)
 81         Element guwen=DocumentHelper.createElement("顾问");//创建出新的标签
 82         guwen.setText("习大大");
 83         list.add(2, guwen);
 84
 85
 86         OutputFormat format= OutputFormat.createPrettyPrint();//创建一个格式
 87         format.setEncoding("UTF-8");//格式设定为“UTF-8”
 88
 89         //以下代码参考手册固定写出,把添加的内容更新到XML文档中,需要强调的是由于存在更新写入时的读码问题,
 90         //需要强调的是由于存在更新写入时的读码问题,此处固定写法:自己设置一个格式如上,下用FileOutputStream输出
 91         XMLWriter writer = new XMLWriter(new FileOutputStream("src/dom4j/shu.xml" ));
 92         writer.write( document );
 93         writer.close();
 94     }
 95     @Test
 96     // 在第二本书的指定位置添加<顾问>习大大</顾问>
 97     public void delect() throws DocumentException, Exception
 98     {
 99         //这两句程序根据手册写出,是固定的,目的是获取读取器
100         SAXReader reader = new SAXReader();
101         Document document = reader.read(new File("src/dom4j/shu.xml"));
102
103         Element root=document.getRootElement();//得到xml的根节点
104         Element book=(Element) root.elements("书").get(1);//得到第二本书的根节点(标签):<书>
105         Element guwen=book.element("顾问");//找到顾问标签
106         guwen.getParent().remove(guwen);//删除(先获取父节点)
107
108         OutputFormat format= OutputFormat.createPrettyPrint();//创建一个格式
109         format.setEncoding("UTF-8");//格式设定为“UTF-8”
110
111         //以下代码参考手册固定写出,把添加的内容更新到XML文档中,需要强调的是由于存在更新写入时的读码问题,
112         //需要强调的是由于存在更新写入时的读码问题,此处固定写法:自己设置一个格式如上,下用FileOutputStream输出
113         XMLWriter writer = new XMLWriter(new FileOutputStream("src/dom4j/shu.xml" ));
114         writer.write( document );
115         writer.close();
116     }
117     @Test
118     // 更改在指定位置的<顾问>习大大</顾问> 为   <顾问>习大大和彭妈妈</顾问>
119     public void update() throws DocumentException, Exception
120     {
121         //这两句程序根据手册写出,是固定的,目的是获取读取器
122         SAXReader reader = new SAXReader();
123         Document document = reader.read(new File("src/dom4j/shu.xml"));
124
125         Element root=document.getRootElement();//得到xml的根节点
126         Element book=(Element) root.elements("书").get(1);//得到第二本书的根节点(标签):<书>
127         Element guwen=book.element("顾问");//找到顾问标签
128         guwen.setText("习大大和彭妈妈");
129
130         OutputFormat format= OutputFormat.createPrettyPrint();//创建一个格式
131         format.setEncoding("UTF-8");//格式设定为“UTF-8”
132
133         //以下代码参考手册固定写出,把添加的内容更新到XML文档中,需要强调的是由于存在更新写入时的读码问题,
134         //需要强调的是由于存在更新写入时的读码问题,此处固定写法:自己设置一个格式如上,下用FileOutputStream输出
135         XMLWriter writer = new XMLWriter(new FileOutputStream("src/dom4j/shu.xml" ));
136         writer.write( document );
137         writer.close();
138     }
139 }

dom4j解析,帮助文档很重要

时间: 2024-08-14 06:58:47

dom4j解析(项目常用)的增删改查的相关文章

django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面

1.为test.DB数据库预先创建下面数据 1    张三    16    2015-01-02    12    李四    17    2015-01-04    13    王五    14    2015-04-24    0 2.配置C:\djangoweb\helloworld\blog\urls.py文件 # -*- coding: UTF-8 -*- from django.conf.urls import patterns, include, url urlpatterns

【greenDAO3】 项目搭建与增删改查操作

最近需要开始一个新的项目了,考虑到既然是新项目了,那么一些常用的框架肯定也要用当下最火的!这次的新项目中涉及到了本地数据存储,很早前有个项目的本地数据库框架用的是ActiveAndroid,github找了下这个框架,发现已经两年多已经没有更新了.然后就想到了一直没有时间去涉及到的greenDAO,github一搜索,哦呦?star有5000+,并且依然保持着很高的更新频率,并且性能远远的高于activeAndroid(见下图),果断选用. 刚开始想偷偷懒,大致浏览了下greenDAO官网后就开

ASP.NET WebAPI 项目示例(增删改查)

1.WebApi是什么 ASP.NET Web API 是一种框架,用于轻松构建可以由多种客户端(包括浏览器和移动设备)访问的 HTTP 服务.ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台. 可以把WebApi看成Asp.Net项目类型中的一种,其他项目类型诸如我们熟知的WebForm项目,Windows窗体项目,控制台应用程序等. WebApi类型项目的最大优势就是,开发者再也不用担心客户端和服务器之间传输的数据的序列化

框架 day39-42 SSH整合练习项目CRM(配置文件,增删改查,ajax,上传/下载,分页,BaseDao/Action)

1     配置文件 1.1   spring配置 1.1.1       介绍     加载properties     配置数据源DataSource     配置SessionFactory , 加载所有hbm.xml     hibernate事务管理     使用 <import > 所有的模块都使用单独配置文件 1.1.2       使用源码包     使用config源码,将源码和配置文件分开存放,方便程序的维护. 1.1.3       spring核心 1.1.

Android学习笔记之SQLite数据库的使用及常用的增删改查方法、无sql语句的DRUD方法汇总

(1)目录结构如下: (2)链接数据库的文件:DBHelper.java要继承SQLiteOpenHelper类 package com.lc.sqlite_demo1.db; import android.content.Context; import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLit

常用的增删改查函数

无论做什么系统,涉及到数据库肯定离不开增删改查,下面是自己写的有关数据库增删改查封装的函数,仅供参考. using System; using System.ComponentModel; using System.Collections; using System.Diagnostics; using System.Data; using System.Data.SqlClient; using System.Configuration; using OnLineExam.HelperClas

框架 day30 Struts2练习项目-人员管理(增删改查)

Struts2练习项目人员管理 1案例名称: 人员管理系统:user manager system (ums) 2案例功能: *用户登录 -- xml校验.登录拦截器 *查询所有用户(条件查询) *添加(上传简历)-- token *编辑(下载) -- 标签回显 *查询 *删除(略) 3技术分析 4环境搭建 4.1jar包 *struts *dbutils *c3p0 *mysql 4.2配置文件 4.2.1struts.xml <?xml version="1.0" encod

Django项目----快速实现增删改查组件(起步阶段!!!)

一.相关知识点回顾 1.什么是反射?   可以用字符串的方式去访问对象的属性 2.反射有四种方法? hasattr(object,name):判断一个对象是不是有name属性或者方法 getattr:获取对象的属性或者方法, 需要注意的是,如果返回的是对象的方法,返回出来的是对象的内存地址, 如果需要运行这个方法,可以在后面添加一对() setattr:给对象的属性赋值,如果属性不存在,先创建后赋值 delattr:删除该对象指定的一个属性 3.创建ModelForm的两种方式 # 方式一定义M

一个完整的mybatis项目,包含增删改查

1.导入jar包,导入相关配置文件,均在自己博客园的文件中 编写mybatis.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "./mybatis-3-config.dtd"> <configuration> &l

【sql server常用操作{增删改查}】

use DB_x   go   drop database DB_y   create database DB_y --创建数据库   on primary --指定主数据文件   (   name=db, --逻辑名   filename='d:\db.mdf', --文件位置   size=3MB, --初始大小   maxsize=10MB, --最大增长   filegrowth=1MB --增长方式   )   log on --指定日志文件   (   name=ldb,   fil