程序员人生 网站导航

Dom4j框架的使用

栏目:php教程时间:2015-05-08 08:00:50

    dom4j是1个Java的XML API,类似于jdom,用来读写XML文件的。我们说Dom4j是1个框架,框架就是很多很多类的集合,它整合了DOM思想,将文档中的所有内容创建成对象放到内存中,利用事件驱动来对XML实现不同的操作。


    1.Dom4j的引入


    使用Dom4j时,必须首先引入dom4j.jar,如果使用到了它的拓展功能,还需要引入jaxen⑴.1-beta⑹.jar。


   2.对XML的操作


    要想实现对XML的操作,首先必须读取到XML文档:

    

SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/student.xml"));

    ①查询

    

//1取得根元素 Element root = document.getRootElement(); //2遍历根元素下student的子元素 Iterator<Element> it = root.elementIterator("student"); while(it.hasNext()){ Element studentEle = it.next(); //3取得number属性 String number =studentEle.attributeValue("number"); String name = studentEle.elementText("name"); String age = studentEle.elementText("age"); String sex = studentEle.elementText("sex"); }

    

    ②添加


//1获得students根元素 Element root = document.getRootElement(); //2添加学生元素 Element student = root.addElement("student").addAttribute("number", "ITCAST_003"); //3增加子元素 student.addElement("name").addText("Fanny"); student.addElement("age").addText("23"); student.addElement("sex").addText("female"); //4将新添加的写回到文档中 //1>创建格式化器 OutputFormat format = OutputFormat.createPrettyPrint(); //2>创建写入器 XMLWriter writer = new XMLWriter(new FileWriter("src/studentcopy.xml"),format); //3>写入文件 writer.write(document); //4>关闭资源 writer.close();

    ③删除

    

//1.获得根元素 Element root = document.getRootElement(); //2.遍历student的子元素 //2.1>方法1 Iterator<Element> it = root.elementIterator("student"); while(it.hasNext()){ Element studentEle = it.next(); String number = studentEle.attributeValue("number"); if(number == "jerry"){ it.remove(); } } //2.2方法2 List<Element> list = root.elements("student"); for(int i = 0; i < list.size(); i++){ Element studentEle = list.get(i); //3.判断学号是不是等于被删除学生,是的话就履行删除 if("itcast_0001".equals(studentEle.attribute("number"))){ studentEle.getParent().remove(studentEle); break; } } //3.保存到文档 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/studentDel.xml"),format); writer.write(document); writer.close();

    总结:

    在学习Dom4j的进程中,感觉很像学习js的时候对DOM的操作,实际上,Dom4j也正是在DOM的基础上实现对XML的操作的,所以这1块的学习1定要和之前的HTML DOM结合起来,会事半功倍的。    


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐