使用DOM4J维护手机收藏信息

news/2025/2/27 10:31:45

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();
}
}

转载于:https://www.cnblogs.com/zqbc/p/6759882.html


http://www.niftyadmin.cn/n/4049286.html

相关文章

[DWR(Ajax)]DWR使用笔记

[DWR(Ajax)]DWR使用笔记 DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码。它的实现是基于ajax的,可以实现无刷新效果。 网上有不少DWR的例子,但大都只是某种方法的调用&…

uirecorder init 时,一直卡在这一步“Start install project dependencies…”

uirecorder init 时,一直卡在这一步“Start install project dependencies…”,请问怎么解决 uirecorder init 时,一直卡在这一步“Start install project dependencies…” 解决方法如下: Please use the windows environment …

2006的年又过去了!

现在觉得自己的时间过的真是贼快。刚刚还记得是2005年刚刚从学校毕业,找工作找的累死,但是眨眼间竟然到了,竟然半年过去了。本来在毕业的时候还有很多很多的想法,很多很多的感触要写,要把它记录下来,但是不…

poj1236 Network of Schools ,有向图求强连通分量(Tarjan算法),缩点

题目链接: 点击打开链接 题意&#xff1a; 给定一个有向图&#xff0c;求&#xff1a; 1) 至少要选几个顶点。才干做到从这些顶点出发&#xff0c;能够到达所有顶点 2) 至少要加多少条边。才干使得从不论什么一个顶点出发&#xff0c;都能到达所有顶点 顶点数< 100 求完…

公司上班日志——海岸项目

2006年2月27日开始在公司上班&#xff0c;星期一的时候冯经理把我介绍给了开发一部一个叫冯%宁%前的人&#xff0c;从此我开始了新的工作学习历程。&#xff08;都是用杨%总统一安排的&#xff09;。在这一天我领了电脑&#xff0c;也找位置安定了下来。本来以为此次就进入了比…

c++ 重载、重写、重定义(隐藏)

1.重载overload&#xff1a;函数名相同&#xff0c;参数列表不同。 重载只是在类的内部存在,或者同为全局范围。(同名&#xff0c;同参函数返回值不同时&#xff0c;会编译出错。因为系统无法知晓你到底要调用哪一个。)2.重写override&#xff1a;也叫做覆盖。子类重新定义父类…

uirecorde安装教程以及uirecorder如何启动WebDriver服务

uirecorde安装教程 根据官方的教程 的教程&#xff0c;跟着一步一步很容易就可以安装了&#xff0c;我就不再复制过来了。 注意一下几点&#xff1a; 需要安装node(>7.x) java(>1.8 自己使用的1.8)环境启动WebDriver服务uirecorder init 时&#xff0c;一直卡在这一步“…

20060309海安his

海安项目逼得很紧&#xff0c;昨天领导们都出差去了&#xff0c;我在公司装数据库和搭建简易his环境&#xff0c;并在下午看了一下源程序、表模式也做了相应的了解。 今天早上公司里面和另外一个和我一起负责his的人一起讨论了一下。经过讨论我知道了那边有将近150家医院要用我…