动态生成xml

package com.hxmy.util;


 import java.io.File;
 import java.util.Date;
 import java.util.List;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Text;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
import org.apache.xerces.dom.DocumentImpl;

 

 

 public class ExportXml {

//这里传进3个参数

//---1 xml格式的第二层的名字

//---2--1所对应的值

//---3 生成的xml文件存放位置及名字

    public static void createDoc(String[] tagName,List tagValue,String filename)
   {
     try {
         Document doc = new DocumentImpl();  //创建xml文档
         Element root = doc.createElement("table");  //创建根节点
         //List tagValue  其子项是一个object 数组

         //遍历值,显示的xml2层节点的个数

         for(int i=0; i<tagValue.size(); i++)
         {
          Element child = createElement(doc,tagName,(Object[])tagValue.get(i));
          root.appendChild(child);
         }
           
         doc.appendChild(root);
         save(doc,filename);
     } catch(Exception e){
         e.printStackTrace();
     }
 }

 /**
  * 创建节点
  * @param doc
  * @param tagName 节点名称
  * @param tagValue 节点值
  * @return
  */
 public static Element createElement(Document doc,String[] tagName,Object[] tagValue)
 {

//生成根节点
  Element rootNode = doc.createElement("humanFile");
  //循环第一层节点名字
  for(int i=0; i<tagName.length; i++)
  {
   Element tagNode = doc.createElement(tagName[i]);
   //添加对应的值
   Text textNode = doc.createTextNode((null==tagValue[i])?"":tagValue[i].toString());


   tagNode.appendChild(textNode);
   rootNode.appendChild(tagNode);
  }
     return rootNode;
 }

 /**
  * 保存xml文件
  * @param doc xml文档
  * @param xmlFileName 文件名
  */
 public static void save(Document doc,String xmlFileName){
     try{
         TransformerFactory tfactory = TransformerFactory.newInstance();
         Transformer transformer = tfactory.newTransformer();
         transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"GB2312");
         DOMSource source = new DOMSource(doc);
         
        String path=xmlFileName+"//Download//人力资源档案"

           +new Date().getYear()+(new Date().getMonth()+1)+new   

           Date().getDate()+new Date().getTime()+".xml";
         //输出
         StreamResult result = new StreamResult(new File(path));
         transformer.transform(source, result);
     }catch(Exception e){
         e.printStackTrace();
     }
 }
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值