文章标题
2017-04-09 23:11
232 查看
DOM4J
package cn.itcast.dom4j; import java.io.File; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; // 查询出所有学生的所有信息 public class Demo2_2 { public static void main(String[] args) { try { SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/students.xml")); //1.获得根元素 Element root = document.getRootElement(); String name2 = root.getName(); //2.迭代根元素下的所有名叫student的子元素 List<Element> list = root.elements("student"); for(Element student : list){ //3.获得student元素的number属性 String number = student.attributeValue("number"); //4.student子元素的内容(name age sex) String name = student.elementText("name"); String age = student.elementText("age"); String sex = student.elementText("sex"); System.out.println("当前学生的学号是"+number+",姓名是:"+name+",年龄是:"+age+",性别是"+sex+""); } } catch (Exception e) { e.printStackTrace(); } } }
package cn.itcast.dom4j; import java.io.File; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; // 查询出所有学生的所有信息 public class Demo2 { public static void main(String[] args) { try { SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/students.xml")); //1.获得根元素 Element root = document.getRootElement(); //2.迭代根元素下的所有名叫student的子元素 for(Iterator<Element> it = root.elementIterator("student");it.hasNext();){ Element student = it.next(); //3.获得student元素的number属性 String number = student.attributeValue("number"); //4.student子元素的内容(name age sex) String name = student.elementText("name"); String age = student.elementText("age"); String sex = student.elementText("sex"); System.out.println("当前学生的学号是"+number+",姓名是:"+name+",年龄是:"+age+",性别是"+sex+""); } } catch (Exception e) { e.printStackTrace(); } } }
package cn.itcast.dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; // 增加一个学生元素. jack itcast_0003 19 male public class Demo3 { public static void main(String[] args) { SAXReader reader = new SAXReader(); try { Document document = reader.read(new File("src/students.xml")); //1 获得根元素 Element root = document.getRootElement(); //2 添加Element,添加number属性, Element studentEle = root.addElement("student").addAttribute("number", "itcast_0003"); //3 添加name age sex 子元素并添加子元素中的文本 studentEle.addElement("name").addText("张三"); studentEle.addElement("age").addText("19"); studentEle.addElement("sex").addText("male"); //4 将document对象写到文件中. //创建格式化器 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); //创建写入器 //XMLWriter writer = new XMLWriter(new FileWriter("src/students_copy.xml"),format); XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"),format); //写入 writer.write(document); //关闭资源 writer.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package cn.itcast.dom4j; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; // 删除一个学生 itcast_0001 public class Demo4 { public static void main(String[] args) { SAXReader reader = new SAXReader(); try { Document document = reader.read(new File("src/students.xml")); //1 获得根元素 Element root = document.getRootElement(); //使用xpath找到我们需要元素 //定义xpath String xpath = "//student[@number='itcast_0001']"; Element student = (Element) document.selectSingleNode(xpath); //删除 System.out.println(student.getParent().remove(student)); //回写 XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"), OutputFormat.createPrettyPrint()); writer.write(document); writer.close(); //下面这个思路可以.但是效率太低. //2 获得所有学生元素 //3 遍历 //判断=>number属性是否为要删除的 //是==>删除 //不是 //4 回写 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package cn.itcast.dom4j; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; //修改一个学生 itcast_0001 ==> rose 16 female public class Demo5 { public static void main(String[] args) { SAXReader reader = new SAXReader(); try { Document document = reader.read(new File("src/students.xml")); //1.定义xpath表达式 String xpath ="//student[@number='itcast_0001']"; //2.使用xpath查找 Element studentEle = (Element) document.selectSingleNode(xpath); //3.修改student元素的子元素的name ,age .sex内容 studentEle.element("name").setText("rose"); studentEle.element("age").setText("16"); studentEle.element("sex").setText("female"); //回写 XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"), OutputFormat.createPrettyPrint()); writer.write(document); writer.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
<?xml version="1.0" encoding="utf-8" ?> <students> <student number="itcast_0001"> <name>tom</name> <age>18</age> <sex>male</sex> </student> <student number="itcast_0002"> <name>jerry</name> <age>16</age> <sex>female</sex> </student> </students>