动态生成XML文件

今天给大家讲一下如何动态生成XML文件:

一般来说动态生成XML文件有三种方式:

1.使用Document动态生成XML

2.dom4j

3.直接将对象集合,使用C标签展示到XML文件中

 

接下来我先将三种方式的大纲以及需要的使用的类和方法列出来:

1.使用Document动态生成XML

 <1>.创建Document

    ①实例化Document工厂:DocumentBuilderFactory

    ②实例化Document构造器:DocumentBuilder

    ③实例化Document:Document

    ④创建标签:document.createElement();

    ⑤创建属性:document.createAttribute();

    ⑥建立关系:appendChild();

 <2>.将Document保存到本地XML中

    ①实例化转化工厂:TransFormerFactory

    ②实例化转换器:TransFormer

    ③设置来源:Source:DOMSource

    ④设置目的地:Result:StreamResult

    ⑤转换:transfrom();

 

代码如下:

package com.zking.test;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * 创建XML 使用Document
 * @author Administrator
 *
 */
public class TestCreateXMlByDocument {
    public static void main(String[] args) {
        try {
            //1.实例化DocumentBuilderFactory
            DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
            //2.通过dbf获取DocumentBuilder
            DocumentBuilder db=dbf.newDocumentBuilder();
            //3.创建Document
            Document document=db.newDocument();
            
            //4.创建标签<persons>
            Element elementPersons=document.createElement("persons");
            //创建<person>
            Element elementPerson=document.createElement("person");
            //创建<page>
            Element elementPage=document.createElement("page");
            //给标签设值
            elementPage.setTextContent("22");
            //创建<psex>
            Element elementPsex=document.createElement("psex");
            elementPsex.setTextContent("男");
            
            //5.创建属性
            Attr attrPid=document.createAttribute("pid");
            //给属性设值
            attrPid.setValue("1");
            Attr attrPname=document.createAttribute("pname");
            attrPname.setValue("hug");
            
            //6.建立关系
            document.appendChild(elementPersons);
            elementPersons.appendChild(elementPerson);
            elementPerson.appendChild(elementPage);
            elementPerson.appendChild(elementPsex);
            elementPerson.setAttributeNode(attrPid);
            elementPerson.setAttributeNode(attrPname);
            
            System.out.println("创建OK");
            
            
            //将生成的Document保存到XML文件中
            //1.实例化转换器工厂
            TransformerFactory tff=TransformerFactory.newInstance();
            //2.通过tff获取转换器
            Transformer transformer=tff.newTransformer();
            
            //来源
            DOMSource source=new DOMSource(document);
            //结果
            StreamResult streamResult=new StreamResult(new File("my.xml"));
            
            //3.开始转换
            transformer.transform(source, streamResult);
            
            System.out.println("保存成功");
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

 

 

2.dom4j

使用dom4j时需要先下载jar包,下载地址 http://www.dom4j.org/dom4j-1.6.1/

<1>.创建Document

 ①使用DocumentHelper创建Document

 ②添加标签:addElement("标签名")

 ③添加属性:addAttribute("属性名","属性值")

<2>.将Document保存到本地XML中

 ①实例化输出格式:OutputFormat.createPrettyprint()

 ②指定输出文件路径:XMLWriter

 

代码如下:

package com.zking.test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

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

/**
 * 使用DOM4J创建XML
 * @author Administrator
 *
 */
public class TestCreateXMLByDom4j {
    public static void main(String[] args) {
        try {
            //1.创建Document
            Document document=DocumentHelper.createDocument();
            //2.创建标签<students>
            Element elementStudents=document.addElement("students");
            //创建标签<student>
            Element elementStudent=elementStudents.addElement("student");
            //设值属性
            elementStudent.addAttribute("sid", "1");
            elementStudent.addAttribute("sname", "hug");
            
            //创建标签<sage><ssex>
            Element elementSage=elementStudent.addElement("sage");
            //设值
            elementSage.setText("140");
            Element elementSsex=elementStudent.addElement("ssex");
            elementSsex.setText("男");
            
            //生成到XML中
            FileOutputStream fos=new FileOutputStream("students.xml");
            XMLWriter xmlWriter=new XMLWriter(fos,OutputFormat.createPrettyPrint());
            xmlWriter.write(document);
            xmlWriter.close();
            System.out.println("OK");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
}

 

 

3.直接将对象集合,使用C标签展示到XML文件中

 ①将对象集合保存到请求域中

 ②在jsp页面,使用C标签编译对象集合

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值