package com.heilong.test;
import java.io.FileOutputStream;
import org.dom4j.Attribute;
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;
public class Demo{
public static void main(String[] args) throws Exception {
createDoc();
}
public static void createDoc() throws Exception{
Document doc = DocumentHelper.createDocument();
Element contactList = doc.addElement("contactList");
Element contact = contactList.addElement("contact");
contact.addAttribute("id", "001");
Element name = contact.addElement("name");
name.setText("张三");
Element age = contact.addElement("age");
age.setText("25");
Element phone = contact.addElement("phone");
phone.setText("12032145753");
Element email = contact.addElement("email");
email.setText("zhangsan@qq.com");
Element qq = contact.addElement("qq");
qq.setText("769456248");
write(doc);
}
public static void update() throws Exception{
Document doc = new SAXReader().read("./src/contact.xml");
Element contactElt1 = (Element) doc.getRootElement().elements().get(0);
Attribute idAtr1 = contactElt1.attribute("id");
idAtr1.setValue("003");
Element contactElt2 = (Element) doc.getRootElement().elements().get(1);
contactElt2.addAttribute("id","004");
Element ageElt = doc.getRootElement().element("contact").element("age");
ageElt.setText("32");
write(doc);
}
public static void delete() throws Exception{
Document doc = new SAXReader().read("./src/contact.xml");
Element ageElt = doc.getRootElement().element("contact").element("age");
ageElt.detach();
Element contactElt = (Element) doc.getRootElement().elements().get(1);
Attribute idAttr = contactElt.attribute("id");
idAttr.detach();
write(doc);
}
public static void write(Document doc) throws Exception{
FileOutputStream outputStream = new FileOutputStream("./src/contact_copy.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(outputStream,format);
writer.write(doc);
writer.close();
}
}