Java利用dom4j生成xml文件、解析XML

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

转载于:https://www.cnblogs.com/fqfanqi/p/6097283.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值