收藏信息.xml

<?xml version="1.0" encoding="GB2312" standalone="no"?><PhoneInfo>
<Brand id="" name="华为">
<Type name="U8650"/>
<Type name="HW123"/>
<Type name="HW321"/>
</Brand>
<Brand id="" name="苹果">
<Type name="iPhone4"/>
</Brand>
<Brand id="" name="三星"><type name="s120"/></Brand></PhoneInfo>

解析示例:

 import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator; 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; public class Dom4jParse {
public static Document document; //获取DOM
public static void getDom(){
SAXReader saxReader = new SAXReader();
try {
document = saxReader.read(new File("收藏信息.xml"));
} catch (DocumentException e) {
e.printStackTrace();
} } //获取所有节点信息
public static void showInfo(){
Element root = document.getRootElement();
for(Iterator itBrand=root.elementIterator();itBrand.hasNext();){
Element brand = (Element) itBrand.next();
System.out.println("品牌"+brand.attributeValue("name"));
for(Iterator itType=brand.elementIterator();itType.hasNext();){
Element type = (Element) itType.next();
System.out.println("\t型号"+type.attributeValue("name"));
}
} } //添加节点
public static void addNode(){
Element root = document.getRootElement();
Element eBrand = root.addElement("Brand");
eBrand.addAttribute("name", "诺基亚");
Element eType = eBrand.addElement("type");
eType.addAttribute("name", "直板");
saveXml("收藏信息.xml");
} //更新节点,添加ID属性
public static void updateNode(){
Element root = document.getRootElement();
int id=0;
for(Iterator iBrand=root.elementIterator();iBrand.hasNext();){
Element brand = (Element)iBrand.next();
id++;
brand.addAttribute("id", id+"");
}
saveXml("收藏信息.xml");
} //删除节点
public static void deleteNode(){
Element root = document.getRootElement();
for(Iterator iBrand=root.elementIterator();iBrand.hasNext();){
Element brand = (Element)iBrand.next();
if(brand.attributeValue("name").equals("诺基亚")){
brand.getParent().remove(brand);
}
}
saveXml("收藏信息.xml");
} //保存XML
public static void saveXml(String path){
//输出格式转换器
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK2312");
XMLWriter writer;
try {
writer = new XMLWriter(new FileWriter(path), format);
writer.write(document);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
Dom4jParse dp = new Dom4jParse();
dp.getDom();
dp.showInfo(); } }

dom4j解析示例的更多相关文章

  1. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  2. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  3. 【收藏用】--切勿转载JAVA 使用Dom4j 解析XML

    原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1) ...

  4. DOM4J解析XML文档

    Tip:DOM4J解析XML文档 Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j ...

  5. dom4j解析xml文档全面介绍

    一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...

  6. 源生API解析XML文档与dom4j解析XML文档

    一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...

  7. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  8. dom4j解析xml字符串实例

    DOM4J 与利用DOM.SAX.JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异.功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml ...

  9. XML 解析之 dom4j 解析器

    dom4j 的使用需要导入 jar 包, 包括: dom4j-1.6.1 和 jaxen-1.1-beta 步骤: 在项目目录下,"Folder" 创建一个 lib 文件夹 复制 ...

随机推荐

  1. Tomcat 内存优化设置

    vi /tomcat7.0/bin/catalina.sh 开发环境 #!/bin/sh JAVA_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m' 服务器: #! ...

  2. Django Restful Framework (二): ModelSerializer

    时常,你需要对django model 的实例进行序列化.ModelSerializer 类提供了一个捷径让你可以根据 Model 来创建 Serializer. ModelSerializer 类和 ...

  3. 超详细Web前端开发规范文档

    http://www.w3cfuns.com/notes/26488/c2ae788c77f835357025026a148b9863.html

  4. html 标签

    CSS : overflow : hidden   --  就是给一个盒子定义了一个显示范围.内部的物体.只有在这个范围内部才会被显示.不然就被隐藏. overflow-x overflow-y 控制 ...

  5. delphi tidhttp 超时设置无效的解决方法

    现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTimeout ...

  6. java 深入技术八(内省)

    1. javabean的软件设计思想 2.内省:封装了java反射,提供直接操作属性的Setter和getter方法的方法 3.核心API:BeanInfo java 的描述信息,Introspect ...

  7. 【NodeJs环境下bower】如何更改bower_components文件夹的位置

    bower在初始化,默认是将bower_components文件夹放到项目的根目录下,若是public/index.html如何配置bower_components下的js或者css类库呢?只需要将b ...

  8. win7下cmd常用命令

    当在win7下执行命令出现右图状况 状况下可以采用鼠标放在指定的文件夹然后按shilt+鼠标右键可以出现下图的界面直接在此处打开cmd

  9. mysql 5.7.14 免安装配置方法教程

    仅供参考 一.下载 1. 进入mysql官网,下载Mysql-5.7.14,下载地址:http://dev.mysql.com/downloads/mysql/ 2.将下载好的文件解压到自定义目录 二 ...

  10. Erlang--etc结构解析

    Erlang中可以用List表达集合数据,但是如果数据量特别大的话在List中访问元素就会变慢了;这种主要是由于List的绝大部分操作都是基于遍历完成的. Erlang的设计目标是软实时(参考:htt ...