dom4j快速入门
2014-11-20 08:26
232 查看
package dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.OutputStream; import java.io.OutputStreamWriter; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.junit.Test; import java.util.*; //dom4j具有更强的灵活性,操作方便,下面是dom4j的使用方法 public class demo1 { //下面方法显示使用dom4j进行解析的开始步骤 @Test public void Test1() throws Exception{ //1.首先新建一个SAXReader() SAXReader reader = new SAXReader(); //2.use the method provided by SAXReader to read file. Document document = reader.read(new File("src/Student.xml")); //3.use the mehtod provided by Document to get root Element Element element = document.getRootElement(); List(element); } //递归遍历所有元素 public void List(Element element){ System.out.println(element.getName()); List<Element> list = element.elements(); for(int i = 0; i < list.size(); i++){ Element ele = list.get(i); List(ele); } } @Test //if you want to get the attribute of an element, you can use the method attributeValue() //provided by Element public void getAttribute() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/Student.xml")); Element element = document.getRootElement().element("student"); System.out.println(element.attributeValue("examid")); } //add an new Node to XML @Test public void addNode() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/Student.xml")); //创建一个新节点,创建新节点是通过DocumentHelper里的createElement()方法 //在方法里面要加上要创建的节点名称,调用Element的setText()方法可以为节点设置内容 Element e = DocumentHelper.createElement("location"); /*注意:Element继承自brench接口,此接口具有addElement()方法,调用此方法并传入相应的参数可以添加新的节点 例如:Element e = document.getRootElement(); e.addElement("name").setText("张三"); brench的addElement()返回的是Element这便于以后的操作 */ e.setText("南京"); //将新节点添加到指定节点下面 Element e1 = document.getRootElement().element("student"); e1.add(e); //完成之后要将Document重新写入到目标文档,写入时注意中文乱码的问题,由于xml文档内部指定的是utf-8编码 //所以在使用输出流的时候要选用可以指定编码的输出流,而FileOutputStream可以指定编码。 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/Student.xml"), "utf-8"),format); writer.write(document); writer.close(); } @Test public void addNode2() throws Exception{ //获取要插入节点的父节点 SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/Student.xml")); //创建一个新的节点 Element e = DocumentHelper.createElement("sex"); e.setText("female"); //获取根 节点的孩子节点 List list = document.getRootElement().element("student").elements(); //向第二个位置中加入想要加入的节点. list.add(2, e); //将更新的document写入目标文件 //注意乱码问题 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/Student.xml"), "utf-8"),format); writer.write(document); writer.close(); } //how to remove a Node from XML @Test public void removeNode() throws Exception { //获取document SAXReader reader = new SAXReader(); Document document = reader.read("src/Student.xml"); //获取父亲节点 Element e = (Element)document.getRootElement().element("student").elements("sex").get(0); e.getParent().remove(e); //更新 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/Student.xml"), "utf-8"),format); writer.write(document); writer.close(); } }
相关文章推荐
- dom4j(Version 1.6.1)快速入门
- dom4j(Version 1.6.1)快速入门
- dom4j(Version 1.6.1)快速入门
- dom4j(Version 1.6.1)快速入门
- dom4j快速入门文档
- dom4j的快速入门——冰云编写
- 使用dom4j遍历xml 文档快速入门
- dom4j(Version 1.6.1)快速入门
- Dom4j快速入门
- dom4j 快速入门文档
- Dom4j解析XML快速入门
- dom4j 快速入门指南
- dom4j(Version 1.6.1)快速入门
- Dom4j(Version 1.6.1)快速入门
- dom4j快速入门
- XML快速入门
- RIP路由协议快速入门
- (转)Oracle RMAN快速入门指南
- Toad 使用快速入门
- XML快速入门