1.将以下信息写入一个名字为User的xml文件中
001 23岁 男 张三 1383838438
002 24岁 女 李美丽 1393939439
003 25岁 男 王五 1585858598
package com.sj.homework;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class XieRu {
public static void xieRu(String path, Document document) throws IOException {
//格式化写入
OutputFormat format = OutputFormat.createCompactFormat();//
format.setEncoding("UTF-8");//设定编码格式
FileWriter writer = new FileWriter(path);//构建path路径下的写入流
XMLWriter xmlWriter = new XMLWriter(writer);//写入
xmlWriter.write(document);//写入
xmlWriter.close();//关闭
writer.close();//关闭
}
}
package com.sj.homework;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* @desc 将以下信息写入一个名字为User的xml文件中
001 23岁 男 张三 1383838438
002 24岁 女 李美丽 1393939439
003 25岁 男 王五 1585858598
* @author ws
* @time 8.11
*/
public class Test {
public static void main(String[] args) throws IOException {
//创建
Document document = DocumentHelper.createDocument();//创建一个文档对象
Element rootElement = document.addElement("student");//创建跟元素
setStudent(rootElement, "001", "23", "男", "张三", "1383838438");
setStudent(rootElement, "002", "24", "女", "李美丽", "1393939439");
setStudent(rootElement, "003", "25", "男", "王五", "1585858598");
//设定格式化输出标准
OutputFormat format = new OutputFormat();
format.setEncoding("UTF-8");//设定输出内容的编码格式
//写入:其实是一个io操作
String path = "E:/User.xml";
XieRu xie = new XieRu();
xie.xieRu(path, document);
System.out.println("写入成功");
}
public static void setStudent(Element rootElement,String num,String age,String sex,String name,String tel){
Element stuElement = rootElement.addElement("stu");//通过根元素创建子元素
//给子元素添加属性
stuElement.addAttribute("id", num);
//子元素套子元素,并写入文本值
stuElement.addElement("age").setText(age+"岁");
stuElement.addElement("sex").setText(sex);
stuElement.addElement("name").setText(name);
stuElement.addElement("tel").setText(tel);
}
}
2.从User.xml文件中将所有人的姓名展示出来
package com.sj.homework;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* @desc 2.从User.xml文件中将所有人的姓名展示出来
* @author ws
* @time 8.11
*/
public class Test2 {
public static void main(String[] args) throws DocumentException {
String path = "E:/User.xml";//文件存放的路径
File file = new File(path);//将该路径下的文件加入到内存中
SAXReader reader = new SAXReader();//初始化dom4j中jar包中的用来解析xml的核心类
Document document = reader.read(file);//通过reader对象的read()方法去读取已经加入到内存中的文件,且结果是返回一个文档对象(document)
Element roootElement = document.getRootElement();//通过文档获取到根元素
Iterator<Element> it = roootElement.elementIterator();//跟元素迭代器
while (it.hasNext()) {
Element everyElement = it.next();//everyElement是每个stu
List<Element> stu = everyElement.elements();
Iterator<Element> it2 = stu.iterator();
while (it2.hasNext()) {
Element message = it2.next();//message是stu里面的子元素
if (message.getName().equals("name")) {
System.out.println("姓名:"+message.getText());
}
}
}
}
}
3.将User.xml中的张三名字改为 "007"
package com.sj.homework;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @desc 3.将User.xml中的张三名字改为 "007"
* @author ws
* @time 8.11
*/
public class Test3 {
public static void main(String[] args) throws DocumentException, IOException {
String path = "E:/User.xml";//文件存放的路径
File file = new File(path);//将该路径下的文件加入到内存中
SAXReader reader = new SAXReader();//初始化dom4j中jar包中的用来解析xml的核心类
Document document = reader.read(file);//通过reader对象的read()方法去读取已经加入到内存中的文件,且结果是返回一个文档对象(document)
Element roootElement = document.getRootElement();//通过文档获取到根元素
Iterator<Element> it = roootElement.elementIterator();//迭代器
while (it.hasNext()) {
Element everyElement = it.next();//everyElement是每个stu
List<Element> stu = everyElement.elements();
Iterator<Element> it2 = stu.iterator();
while (it2.hasNext()) {
Element message = it2.next();//message是stu里面的子元素
if (message.getName().equals("name")) {
if (message.getText().equals("张三")) {
message.setText("007");//修改文本值
System.out.println("修改成功");
}
}
}
}
//格式化写入
XieRu xie = new XieRu();
xie.xieRu(path, document);
System.out.println("修改成功");
}
}
4.向User.xml中添加一条数据信息,内容如下
004 26岁 男 李四 1343434394
package com.sj.homework;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @desc 4.向User.xml中添加一条数据信息,内容如下
004 26岁 男 李四 1343434394
* @author ws
* @time 8.11
*/
public class Test4 {
public static void main(String[] args) throws DocumentException, IOException {
//找到给那个路径下的文件添加
String path = "E:/User.xml";
File file = new File(path);
SAXReader reader = new SAXReader();
Document document = reader.read(file);
//添加数据
Element rootElement = document.getRootElement();//跟元素
Element stuElement = rootElement.addElement("stu");//子元素
//给子元素设定属性值
stuElement.addAttribute("id", "004");
//子元素套子元素,并写入文本值
stuElement.addElement("age").setText("26岁");
stuElement.addElement("sex").setText("男");
stuElement.addElement("name").setText("李四");
stuElement.addElement("tel").setText("1343434394");
//格式化写入
XieRu xie = new XieRu();
xie.xieRu(path, document);
System.out.println("添加成功");
}
}
5.将User.xml文件中的性别为女的那一条数据删除
package com.sj.homework;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @desc 5.将User.xml文件中的性别为女的那一条数据删除
* @author ws
* @time 8.11
*/
public class Test5 {
public static void main(String[] args) throws DocumentException, IOException {
//找到给那个路径下的文件添加
String path = "E:/User.xml";
File file = new File(path);
SAXReader reader = new SAXReader();
Document document = reader.read(file);
Element rootElement = document.getRootElement();//跟元素
Iterator<Element> it = rootElement.elementIterator();
while (it.hasNext()) {
Element everyElement = it.next();//everyElement是每个stu
List<Element> stu = everyElement.elements();
Iterator<Element> it2 = stu.iterator();
while (it2.hasNext()) {
Element message = it2.next();//message是stu里面的子元素
if (message.getName()=="sex") {
if (message.getText().equals("女")) {
it.remove();//删除性别为女的整个信息
System.out.println("删除成功");
}
}
}
}
//格式化写入
XieRu xie = new XieRu();
xie.xieRu(path, document);
System.out.println("删除成功");
}
}