package com.cnse.test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author kong
* @info dom4j创建和解析xml
*/
public class Dom4jXml {
public static void main(String[] args) throws IOException, DocumentException {
//dom4j创建xml
createXml();
//解析xml
parseXml();
}
private static void createXml() throws IOException {
// 创建一个文档并设置根节点标签
Document document = DocumentHelper.createDocument();
// 设置该根节点标签的属性和值
Element students = document.addElement("students");
// 设置根节点的子节点
Element student = students.addElement("student");
// 设置子节点属性
student.addAttribute("id", "001");
// 设置子节点的子节点
Element name = student.addElement("name");
name.setText("张三");
Element sex = student.addElement("sex");
sex.setText("男");
Element age = student.addElement("age");
age.setText("28");
/**
* xml的生成
*/
//1-输出到控制台
XMLWriter xmlWriter1 = new XMLWriter();
xmlWriter1.write(document);
System.out.println("打印到控制台成功.....");
OutputFormat format = new OutputFormat(" ", true);// 设置缩进为4个空格,并且另起一行为true
//2-生成到项目中文件
XMLWriter xmlWriter2 = new XMLWriter(new FileOutputStream("E:\\students.xml"), format);
xmlWriter2.write(document);
System.out.println("生成到项目文件成功.....");
}
private static void parseXml() throws DocumentException {
//创建解析器并加载xml文件
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("E:\\student2.xml"));
// 获取根元素
Element root = document.getRootElement();
System.out.println("根节点标签名: " + root.getName());
System.out.print("\n");
List<Element> childList = root.elements();
// 迭代输出
for (int i = 0; i < childList.size(); i++){
Element e1 = (Element) childList.get(i);
System.out.println("子节点的名::::::"+e1.getName());
System.out.println("子节点属性::::::"+e1.attributeValue("id"));
List sunson = e1.elements();
System.out.println("\n");
for (int j = 0; j < sunson.size(); j++) {
Element e2 = (Element) sunson.get(j);
System.out.println("孙子节点的名称>>>>"+e2.getName());
System.out.println("孙子节点的值>>>>>>"+e2.getText());
}
}
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author kong
* @info dom4j创建和解析xml
*/
public class Dom4jXml {
public static void main(String[] args) throws IOException, DocumentException {
//dom4j创建xml
createXml();
//解析xml
parseXml();
}
private static void createXml() throws IOException {
// 创建一个文档并设置根节点标签
Document document = DocumentHelper.createDocument();
// 设置该根节点标签的属性和值
Element students = document.addElement("students");
// 设置根节点的子节点
Element student = students.addElement("student");
// 设置子节点属性
student.addAttribute("id", "001");
// 设置子节点的子节点
Element name = student.addElement("name");
name.setText("张三");
Element sex = student.addElement("sex");
sex.setText("男");
Element age = student.addElement("age");
age.setText("28");
/**
* xml的生成
*/
//1-输出到控制台
XMLWriter xmlWriter1 = new XMLWriter();
xmlWriter1.write(document);
System.out.println("打印到控制台成功.....");
OutputFormat format = new OutputFormat(" ", true);// 设置缩进为4个空格,并且另起一行为true
//2-生成到项目中文件
XMLWriter xmlWriter2 = new XMLWriter(new FileOutputStream("E:\\students.xml"), format);
xmlWriter2.write(document);
System.out.println("生成到项目文件成功.....");
}
private static void parseXml() throws DocumentException {
//创建解析器并加载xml文件
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("E:\\student2.xml"));
// 获取根元素
Element root = document.getRootElement();
System.out.println("根节点标签名: " + root.getName());
System.out.print("\n");
List<Element> childList = root.elements();
// 迭代输出
for (int i = 0; i < childList.size(); i++){
Element e1 = (Element) childList.get(i);
System.out.println("子节点的名::::::"+e1.getName());
System.out.println("子节点属性::::::"+e1.attributeValue("id"));
List sunson = e1.elements();
System.out.println("\n");
for (int j = 0; j < sunson.size(); j++) {
Element e2 = (Element) sunson.get(j);
System.out.println("孙子节点的名称>>>>"+e2.getName());
System.out.println("孙子节点的值>>>>>>"+e2.getText());
}
}
}
}