public class DOM4JPares3 {
Document doc = null;
public void getDocument() {
SAXReader sax = new SAXReader();
try {
doc = sax.read("收藏信息.xml");
} catch (DocumentException e) {
e.printStackTrace();
}
}
// 显示手机的品牌及型号
public void showInfo() {
// 获取根节点
Element rootele = doc.getRootElement();
// 获取所有的子节点8
Iterator iterator = rootele.elementIterator();
while (iterator.hasNext()) {
Element brandele = (Element) iterator.next();
String brandStr = brandele.attribute("name").getText();
// brandele.attributeValue("name");
Iterator typeit = brandele.elementIterator();
while (typeit.hasNext()) {
Element typeele = (Element) typeit.next();
String typeStr = typeele.attributeValue("name");
System.out.println(brandStr + ":" + typeStr);
}
}
}
// 新增手机
public void addPhoneInfo() {
// 先获取根节点
Element root = doc.getRootElement();
// 创建一个brand节点
Element brandEle = root.addElement("Brand");
brandEle.addAttribute("name", "三星");
// 创建一个Type节点
Element typer = brandEle.addElement("Type");
typer.addAttribute("name", "s7");
saveXML();
}
// 修改
public void updata() {
Element rootele = doc.getRootElement();
Iterator iterator = rootele.elementIterator();
while (iterator.hasNext()) {
Element brandele = (Element) iterator.next();
if (brandele.attributeValue("name").equals("华为")) {
brandele.addAttribute("name", "诺基亚");
saveXML();
}
}
}
// 删除
public void delete() {
Element rootele = doc.getRootElement();
Iterator iterator = rootele.elementIterator();
while (iterator.hasNext()) {
Element brandele = (Element) iterator.next();
if (brandele.attributeValue("name").equals("三星")) {
rootele.remove(brandele);
saveXML();
}
}
}
// 保存
public void saveXML() {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
try {
XMLWriter writer = new XMLWriter(new FileWriter("新的收藏信息.xml"),
format);
writer.write(doc);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
DOM4JPares3 dom4j = new DOM4JPares3();
dom4j.getDocument();
dom4j.showInfo();
dom4j.saveXML();
dom4j.addPhoneInfo();
dom4j.showInfo();
dom4j.updata();
dom4j.showInfo();
dom4j.delete();
dom4j.showInfo();
}
}