一、 下载dom4j的文件
二、 在集成开发环境上布置dom4j
加入F:\Program Files\dom4j-1.6.1\dom4j-1.6.1.jar
三、 建立测试文件dom4jTest.xml
四、 编写测试程序Dom4jTest.java(第一种获得节点与属性的方法)
package cn.edu.hpu; import java.io.File; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; public class Dom4jTest { public static void main(String[] args) { //建立SAXReader对象 SAXReader reader = new SAXReader(); Document document = null; try { //获得文档的Document的对象 document = reader.read(new File("dom4jTest.xml")); } catch (DocumentException e) { e.printStackTrace(); } //获得根标签 Element rootElement = document.getRootElement(); System.out.println(rootElement.getName()); //OUTPUT_RESULT:hibernate-mapping /***********第一种获得节点和属性的方法,使用的比较少***********/ for(Iterator it = rootElement.elementIterator(); it.hasNext();) { //获得根标签的子标签 Element element = (Element)it.next(); System.out.println(element.getName()); //OUTPUT_RESULT:class for(Iterator it1 = element.attributeIterator(); it1.hasNext();) { Attribute attribute = (Attribute)it1.next(); System.out.println(attribute.getName() + "-" + attribute.getValue()); //OUTPUT_RESULT:name-cn.edu.hpu table-t_user } } /***********第一种获得节点和属性的方法,使用的比较少***********/ } }
五、 第二种获得节点与属性的方法(XPATH)
此处需要加入第二个文件F:\Program Files\dom4j-1.6.1\lib\jaxen-1.1-beta-6.jar
添加测试程序段:
/***********第二种获得节点和属性的方法,使用的比较多***********/
//使用xpath进行获取节点,下面语句表示拿出此path下所有property节点 Listnodes = document.selectNodes("//hibernate-mapping/class/property"); for(Node node : nodes) { System.out.println(node.getName()); //OUTPUT_RESULT:property property //此处表示取出node中名为name的属性值 System.out.println(node.valueOf("@name")); //OUTPUT_RESULT:username password } //获得单个节点 Node node = document.selectSingleNode("//hibernate-mapping/class/property"); System.out.println(node.getName()); //OUTPUT_RESULT:property
/***********第二种获得节点和属性的方法,使用的比较多***********/
六、 XML文件的生成
package cn.edu.hpu; import java.io.FileWriter; import org.dom4j.*; import org.dom4j.io.*; public class BuildXML { public static void main(String[] args) throws Exception { createXML(); } public static Document createXML() throws Exception { //创建Document对象 Document document = DocumentHelper.createDocument(); //加入根节点 Element root = document.addElement("hibernate-mapping"); //加入其它的节点与属性 Element classNode = root.addElement("class") .addAttribute("name", "cn.edu.hpu") .addAttribute("table", "t-user"); classNode.addElement("property").addAttribute("name", "username"); //文件的输出,此处输出的文件格式不好 /*FileWriter fWriter = new FileWriter("create.XML"); document.write(fWriter); fWriter.flush(); fWriter.close();*/ //使用XMLWriter对象进行输出,得到比较标准的格式 //创建相应的输出格式 OutputFormat format = OutputFormat.createPrettyPrint(); //创建XMLWriter对象 XMLWriter fWriter = new XMLWriter(new FileWriter("create.XML") , format); fWriter.write(document); fWriter.close(); return document; } }