天天看点

jdom 操作xml

JDOM 对Xml文件(增、删、改、查)

package bean;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.List;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.JDOMException;

import org.jdom.input.SAXBuilder;

import org.jdom.output.XMLOutputter;

public class XmlParse {

//解析xml文件

public static void XmlParse() throws JDOMException, IOException {

   SAXBuilder builder = new SAXBuilder();

   InputStream file = new FileInputStream("src/xml/po.xml");

   Document document = builder.build(file);//获得文档对象

   Element root = document.getRootElement();//获得根节点

   List<Element> list = root.getChildren();

   for(Element e:list) {

    System.out.println("ID="+e.getAttributeValue("id"));

    System.out.println("username="+e.getChildText("username"));

    System.out.println("password="+e.getChildText("password"));

   }

}

//增

public static void addXml() throws JDOMException, FileNotFoundException, IOException {

   SAXBuilder builder = new SAXBuilder();

   Document doc = builder.build("src/xml/po.xml");//获得文档对象

   Element root = doc.getRootElement();//获得根节点

   //添加新元素

   Element element = new Element("person");

   element.setAttribute("id", "3");

   Element element1 = new Element("username");

   element1.setText("zhangdaihao");

   Element element2 = new Element("password");

   element2.setText("mima");

   element.addContent(element1);

   element.addContent(element2);

   root.addContent(element);

   doc.setRootElement(root);

   //文件处理

   XMLOutputter out = new XMLOutputter();

   out.output(doc, new FileOutputStream("src/xml/po.xml"));

}

//根据ID值删除一个节点

public static void deletePerson(int id) throws JDOMException, IOException {

   SAXBuilder builder = new SAXBuilder();

   InputStream file = new FileInputStream("src/xml/po.xml");

   Document doc = builder.build(file);//获得文档对象

   Element root = doc.getRootElement();//获得根节点

   List<Element> list = root.getChildren();

   for(Element e:list) {

    //获取ID值

    if(Integer.parseInt(e.getAttributeValue("id"))==id) {

     root.removeContent(e);

     break;//??

    }

   }

   //文件处理

   XMLOutputter out = new XMLOutputter();

   out.output(doc, new FileOutputStream("src/xml/po.xml"));

}

//根据ID值修改一个节点

public static void updatePerson(int id) throws JDOMException, IOException {

   SAXBuilder builder = new SAXBuilder();

   InputStream file = new FileInputStream("src/xml/po.xml");

   Document doc = builder.build(file);//获得文档对象

   Element root = doc.getRootElement();//获得根节点

   List<Element> list = root.getChildren();

   for(Element e:list) {

    //获取ID值

    if(Integer.parseInt(e.getAttributeValue("id"))==id) {

     System.out.println("--------------------");

     e.getChild("username").setText("111111111");

     e.getChild("password").setText("password");

    }

   }

   //文件处理

   XMLOutputter out = new XMLOutputter();

   out.output(doc, new FileOutputStream("src/xml/po.xml"));

}

static public void main(String ars[]) throws JDOMException, IOException {

// addXml();//增加XML

// deletePerson(3);//删除XML

// updatePerson(2);//修改XML

// XmlParse();//解析XML

}

}

------------------------------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<root>

<person id="1">

   <username>张三</username>

   <password>123123</password>

</person>

<person id="2">

   <username>1111111112</username>

   <password>password2</password>

</person>

</root>

xml