XML基本操作
public class Demo1 {
public static void main(String[] args) throws Exception{
SAXReader sr = new SAXReader();
//查
//第一阶段
//1、读取XML文件
Document doc = sr.read("src/main/resources/stu.xml");
//asXML()文档对象以字符串进行显示
//System.out.println(doc.asXML());
//2、获取根元素(所有的根元素),相当于把第一行的简介去掉
Element rootElement = doc.getRootElement();
//System.out.println(rootElement.asXML());
//3、获取根元素对象下指定元素名的元素对象
Element zhangsan = rootElement.element("zhangsan");
//System.out.println(zhangsan.asXML());
//4、获取指定元素名的元素对象的子标签
Element age = zhangsan.element("age");
//System.out.println(age.asXML());
//5、获取字标签中的文本数据
String textTrim = age.getTextTrim();
//System.out.println(textTrim);
//第二阶段
//1、获取指定元素对象的元素名,也就是获得子标签中的属性名
String name = age.getName();
//System.out.println(name);
//2、获取指定元素对象中的属性对象
Attribute id = zhangsan.attribute("ID");
//System.out.println(id.asXML());
//3、获取属性对象的属性值
String value = id.getValue();
//System.out.println(value);
//4、获取指定元素对象下的所有的子元素对象
List<Element> elements = rootElement.elements();
//for (Element element : elements) {
// System.out.println(element.getName());
//}
//5、查询是否存在指定id的子元素 前提:子元素必须包含大写ID
//Element element = rootElement.elementByID("101");
//System.out.println(element.asXML());
//第三阶段
//案例,获取指定学号为101学生的所有信息(年龄,性别,手机号)
//第一种做法
/*Element element = rootElement.elementByID("101");
if (element!=null){
List<Element> elements1 = element.elements();
for (Element element1 : elements1) {
System.out.println(element1.getName()+":"+element1.getTextTrim());
}
}else {
System.out.println("查无此人");
}*/
//删(主要删除的是缓存里面的内容)
//Element zhangsan1 = rootElement.element("zhangsan");
//boolean remove = rootElement.remove(zhangsan1);
//System.out.println(remove);
//修改元素名(也就是根目录)
//rootElement.setName("stus");
//System.out.println(rootElement.asXML());
//rootElement.element("zhangsan");
//zhangsan.setName("张三");
//System.out.println(rootElement.asXML());
//Attribute id1 = zhangsan.attribute("ID");
//修改属性值
//id1.setValue("111");
//System.out.println(rootElement.asXML());
//增
//增加元素对象
Element wangwu = rootElement.addElement("王五");
System.out.println(rootElement.asXML());
Element age1 = wangwu.addElement("age");
Element sex = wangwu.addElement("sex");
Element phone = wangwu.addElement("phone");
age1.addText("22");
sex.addText("男");
phone.addText("123");
//把数据增加到XML文件中
SAXReader reader = new SAXReader();
//获取文档对象
Document doc1 = reader.read("src/main/resources/stu.xml");
Element root = doc1.getRootElement();
//创建字节输出流
FileOutputStream fos = new FileOutputStream("src/main/resources/stu.xml");
//创建专门用于输出写入xml类型的对象
XmlWriter xmlWriter = new XmlWriter(fos);
xmlWriter.write(doc);
xmlWriter.flush();
//创建一个格式化对象
OutputFormat of = OutputFormat.createCompactFormat();
XmlWriter xmlWriter1 = new XmlWriter(fos, of);
xmlWriter1.write(doc);
xmlWriter1.flush();
}
}
<?xml version="1.0" encoding="utf-8" ?>
<students> <!-- xml中有且仅有一个根元素 -->
<zhangsan ID="101"> <!-- 子元素 -->
<age>18</age> <!-- 子元素 -->
<sex>男</sex>
<phone>138888888</phone>
</zhangsan>
<lisi ID="102"> <!-- 子元素 -->
<age>20</age> <!-- 子元素 -->
<sex>男</sex>
<phone>138000000</phone>
</lisi>
</students>
<dependencies>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.0.0</version>
</dependency>