package com.fq.fanqi;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class TaoDaShen {

public void creatXml(File file) throws IOException {            
            //创建一个文档模型
            Document document  = DocumentHelper.createDocument();
            //定义一个根节点
            Element root = document.addElement("parameters");
            //根节点下添加子节点
            Element paramer1 = root.addElement("tao");
            //节点添加属性
            paramer1.addAttribute("taodashen", "淘大婶");
            //节点添加文本
            paramer1.addText("大婶好");
            Element paramer2 = root.addElement("zhou");
            paramer2.addAttribute("xiaozhou", "mengwa");
            paramer2.addText("萌娃娃");
            Element paramer3 = root.addElement("xu");
            paramer3.addAttribute("xinyi", "teacher");
            Element guodaxia = paramer3.addElement("guowei");
            guodaxia.addAttribute("name", "guo");
            guodaxia.addAttribute("ming", "daxia");
            guodaxia.addText("郭大侠");            
            //创建XML格式
            //StringWriter stringWriter = new StringWriter();
            OutputFormat xmlFormat = new OutputFormat();
            xmlFormat.setEncoding("UTF-8");
            xmlFormat.setNewlines(true);
            xmlFormat.setIndent("      ");
            FileWriter fileWriter = new FileWriter(file);
            XMLWriter xmlWriter = new XMLWriter(fileWriter,xmlFormat);
            xmlWriter.write(document);
            xmlWriter.close();        
    }
    //获取节点名,节点属性
    public void iteratorCherk(Element element) {
        List<Element> elements = element.elements();
        for(Element ele : elements){
            List<Attribute> attributeList = ele.attributes();
            String name = ele.getName();
            String text = ele.getTextTrim();            
            System.out.println(name + " " + text + "  " + "节点");
            for(Attribute att : attributeList){
                String aname = att.getName();
                String atext = att.getText();
                System.out.println(aname + " " + atext + "  " + "属性");
            }
            System.out.println("----------------------------------------");
            iteratorCherk(ele);
        }
    }
    //解析XML
    public void analysisXml(File file) throws Exception {
        //
        SAXReader reader = new SAXReader();
        Document document = reader.read(file);
        Element root = document.getRootElement();
        iteratorCherk(root);
        
    }
    
    public static void main(String[] args) throws Exception {
        
        TaoDaShen taoDaShen = new TaoDaShen();
        File file = new File("W:\\test.xml");
        taoDaShen.creatXml(file);
        taoDaShen.analysisXml(file);
    }
}

Java利用dom4j生成xml文件、解析XML的更多相关文章

  1. Java 利用 poi 生成 Excel文件的通用例子

    在用java 写数据库应用的时候, 通常会生成各种报表,而这些报表可能会被导出为各种格式的文件,比如Excel文档,pdf 文档等等. 今天先做了一个生成Excel 文档的例子,主要解决以下问题: 生 ...

  2. java利用poi生成excel文件后下载本地

    1.该功能需要poi的jar包,链接: http://pan.baidu.com/s/1migAtNq 密码: 38fx. 2.首先新建一个实体类,用以存放单个数据 public class Test ...

  3. 9.XML文件解析

    一.XML简介 XML(EXtensible Markup Language),可扩展标记语言 特点:XML与操作系统.编程语言的开发平台无关 实现不同系统之间的数据交换 作用:数据交互 配置应用程序 ...

  4. Java XML文件解析

    四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 蓝色字体内容由上一篇博文中补充进来的,写作风格比较好,大家有兴趣可以去查看原文 众所周知,现在解析XML的方法越来越多,但主流的方法也就四 ...

  5. 使用Java解析XML文件或XML字符串的例子

    转: 使用Java解析XML文件或XML字符串的例子 2017年09月16日 11:36:18 inter_peng 阅读数:4561 标签: JavaXML-Parserdom4j 更多 个人分类: ...

  6. java基础之概谈xml文件解析

    XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...

  7. XML文件解析-DOM4J方式和SAX方式

    最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...

  8. python xml文件解析 及生成xml文件

    #解析一个database的xml文件 """ <databaselist type="database config"> <dat ...

  9. android基础篇------------java基础(11)(文件解析xml and Json )

    一:xml文件解析 首先看一下:我们要解析的内容: <?xml version="1.0" encoding="gbk" ?> - <book ...

随机推荐

  1. SQL数据库相关

    数据库相关知识点 SQL, 对表的理解, 对表的主键, 外键的理解, 视图, 为什么要有视图, 视图有什么功能, 视图与表有什么区别 主键是唯一标识的一条记录,不能重复,不能为空. 表的外键是另一个表 ...

  2. 1px 下划线solid的问题

    1 物理像素线,也就是普通屏幕下 1px,高清屏幕下 0.5px的情况,采用transform属性 scale 实现即可. .mod_grid { position: relative; &: ...

  3. SpringCloud系列十七:Hystrix的监控

    1. 回顾 上文讲解了使用Hystrix为Feign添加回退,并通过Fallback Factory检查回退原因以及如何为Feign客户端禁用Hystrix. 2. Hystrix的监控 除实现容错外 ...

  4. C#反射取数组单个元素的类型

    去bing上查了一下,果然有和我一样蛋疼的朋友,他们在论坛研究了半天,最后还是暴力解决: public Type GetArrayElementType(Type t) { string tName ...

  5. iOS之设置用户头像的圆角

    1. 显示用户头像用UIImageView实现,添加默认图片后效果如下图所示,头像显示为矩形图片. 代码实现: // ViewController.m // SetUserImage // // Cr ...

  6. Linux_Command

    系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ho ...

  7. poj3422 拆点法x->x'建立两条边+最小费用最大流

    /** 题目:poj3422 拆点法+最小费用最大流 链接:http://poj.org/problem?id=3422 题意:给定n*n的矩阵,含有元素值,初始sum=0.每次从最左上角开始出发,每 ...

  8. 【Java】之static静态方法与非static静态方法区别

    1.A.class:没有static public class A { public String getText(){ } B.class调用A的方法时 public class B { publi ...

  9. CentOS安装python setuptools and pip

    安装setup-tools wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --n ...

  10. Tuning 14 Using Oracle Data Storage Structures Efficiently

    90% 是Heap table Cluster 集群表, index-organized table: 就是把索引和表 和二为一了. partitioned table:表非常大, 逻辑上是一个大表, ...