Dom4j解析xml
public class Dom4jTest { // Dom4j解析xml
// 因为所有的方法都需要Dom树
static Document document = null;
static Element root = null;
public static void main(String[] args) {
// 获取dom树
getDocument();
// addPhone();
deletePhone();
updatePhone();
showPhone();
}
// 解析xml文件
public static void getDocument() {
SAXReader reader = new SAXReader();
try {
document = reader.read("收藏信息.xml");
root = document.getRootElement();// 获取根节点
} catch (DocumentException e) {
e.printStackTrace();
}
}
/**
* 显示所有的手机信息
*/
public static void showPhone() {
// 遍历所有的节点
Iterator itBrand = root.elementIterator();
while (itBrand.hasNext()) {
Element brand = (Element) itBrand.next();
System.out.println("手机的品牌是:" + brand.attributeValue("name"));
System.out.println("手机的编号是:" + brand.attributeValue("id"));
System.out.println("===========下面是子节点============");
Iterator itType = brand.elementIterator();
while (itType.hasNext()) {// 获取手机型号
Element type = (Element) itType.next();
System.out.println("手机的型号是:" + type.attributeValue("name"));
// 输出文本节点的值
if (!type.getText().equals("")) {
System.out.println(type.getTextTrim());
}
}
}
}
// 保存xml信息
public static void save(String path) {
OutputFormat format = null;
XMLWriter writer = null;
try {
// dom4j的转换器 不用使用 new createPrettyPrint底层有 new
format = OutputFormat.createPrettyPrint();
// 写入xml文件
writer = new XMLWriter(new FileWriter(path), format);
writer.write(document);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关流
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 新增节点
public static void addPhone() {
Element element = root.addElement("Brand");
// 节点设置属性
element.addAttribute("name", "黑莓");
// 节点下面新增子节点
Element type = element.addElement("Type");
type.addAttribute("name", "A1");
// 保存 省略 我们 节点之间的拼接! dom需要拼接
save("收藏信息.xml");
}
// 删除
public static void deletePhone() {
// 获取所有Brand
Iterator brand = root.elementIterator();
while (brand.hasNext()) {
Element element = (Element) brand.next(); // 拿到每一个Brand
// 获取属性值 判断是不是 要删除的对象
if (element.attributeValue("name").equals("黑莓")) {
element.getParent().remove(element);
}
}
save("收藏信息.xml");
}
// 修改
public static void updatePhone() {
// 获取所有Brand
Iterator brand = root.elementIterator();
while (brand.hasNext()) {
Element element = (Element) brand.next(); // 拿到每一个Brand
// 获取属性值 判断是不是 要修改的对象
if (element.attributeValue("name").equals("哇哈哈")) {
element.attribute("name").setValue("哇哈哈哈哈");
}
}
save("收藏信息.xml");
}
}
使用dom4j解析 需要引入需要的jar包
Dom4j解析xml的更多相关文章
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- 使用dom4j解析XML文档
dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- 用DOM4J解析XML文件案例
用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:
- java使用dom4j解析xml文件
关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...
- 【收藏用】--切勿转载JAVA 使用Dom4j 解析XML
原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1) ...
- 使用DOM4J解析XMl文件与读取XML文件
XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...
- Dom4j解析Xml文件,Dom4j创建Xml文件
Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...
随机推荐
- UI控件封装一般步骤
封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部的子控件的创建屏蔽起来,不让外界关心 外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应 ...
- 修正iOS从照相机和相册中获取的图片方向(转)
- (UIImage *)fixOrientation { // No-op if the orientation is already correct if (self.imageOrientati ...
- Java selenium web页面的滚动条操作
摘录自:http://blog.csdn.net/iceryan/article/details/8162703 //移动到元素element对象的"顶端"与当前窗口的" ...
- 常用open api
SNS类网站API Facebook - http://developers.facebook.com/ 人人网开放平台 - http://dev.renren.com/ 51.com开放平台 - h ...
- Sublime Text 3 个人开发习惯
1.添加author.date到函数注释里面 docblockr插件 a.preferences--package settings--docblockr--settings-user点击打开 b.在 ...
- jsp页面输出序号
<c:forEach items="${tests}" var="test" varStatus="s"> <li> ...
- Cocos2d-x 核心概念 - 场景(Scene)
场景(Scene):构成游戏的界面 场景类的几种: 展示类场景 选项类场景 游戏场景 场景类继承自Node类
- apache 局域网访问
很多的朋友都想把自己的电脑打造为服务器使别人能够访问.比如说你自己写了一网站,只能自己通过localhost访问或127.0.0.1访问.但是怎么让别人的电脑也能访问呢?来看看自己写的网站.现在我来讲 ...
- (原创)Windows系统后安装ubuntu,无法选择启动ubuntu。
继Window系统之后,安装Ubuntu系统. 问题:启动没有Grub的ubuntu启动项. 查看:/boot/grub/中只有txt和env,内容空白,grub没有设置好. 修复: sudo fdi ...
- CentOS6.5 根目录结构划分
/bin 系统的执行程序文件/dev 硬件设备的文件目录/home 用户的家目录/lib 系统库文件目录/mnt 挂载目录,外设的挂载/media 经常用于媒体文件 ...