import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
public class Test {
private Document document;
public static void main(String[] args) {
Test test = new Test();
test.create();
test.show();
test.add();
test.update();
test.delete();
}
//创建document对象
public void create() {
SAXReader saxReader = new SAXReader();
try {
document = saxReader.read("src/Xml/收藏信息2.xml");
} catch (DocumentException e) {
e.printStackTrace();
}
}
//展示信息
public void show() {
//直接获取根元素节点
Element element = document.getRootElement();
//遍历Iterator
Iterator it = element.elementIterator();
while (it.hasNext()) {
Element element1 = (Element) it.next();
System.out.println(element1.attributeValue("name"));
Iterator it1 = element1.elementIterator();
while (it1.hasNext()) {
Element element2 = (Element) it1.next();
System.out.println(element2.attributeValue("name"));
}
}
}
//新增信息
public void add() {
Element element = document.getRootElement();
Element element1 = element.addElement("Brand");
element1.addAttribute("id", "中国");
element1.addAttribute("name", "三星");
Element element2 = element1.addElement("Type");
element2.addAttribute("name", "note4");
save();
}
//保存信息
public void save() {
XMLWriter xmlWriter = null;
try {
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
outputFormat.setEncoding("UTF-8");
xmlWriter = new XMLWriter(new FileWriter("src/Xml/收藏信息2.xml"));
xmlWriter.write(document);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
xmlWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//修改信息
public void update() {
Element element = document.getRootElement();
Iterator it = element.elementIterator();
while (it.hasNext()) {
Element element1 = (Element) it.next();
if (element1.attributeValue("name").equals("三星")) {
element1.addAttribute("id","韩国");
}
}
save();
}
//删除信息
public void delete(){
Element element = document.getRootElement();
Iterator it = element.elementIterator();
while(it.hasNext()){
Element element1 = (Element) it.next();
if(element1.attributeValue("name").equals("三星")){
element1.getParent().remove(element1);
}
}
save();
}
}
=========================================================================
XML文件
<?xml version="1.0" encoding="UTF-8"?>
<PhoneInfo>
<Brand name="华为">
<Type name="U8650"/>
<Type name="HW123"/>
<Type name="HW321"/>
</Brand>
<Brand name="苹果">
<Type name="iPhone4"/>
</Brand>
<Brand id="韩国" name="三星">
<Type name="note4"/>
</Brand>
</PhoneInfo>
475





