动态生成xml
2009-09-28 02:22
190 查看
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();
}
}
}
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();
}
}
}
相关文章推荐
- 用XML和XSL来生成动态页面
- Android学习笔记_31_通过后台代码生成View对象以及动态加载XML布局文件到LinearLayout
- (转载)用asp动态生成xml代码
- php xml 动态生成 rss 源
- c#使用Dataset读取XML文件动态生成菜单的方法
- FusionCharts 动态生成XML数据问题
- XML动态的生成
- c#:Dataset读取XML文件动态生成菜单
- 遍历指定文件夹下所有的xml文件并动态生成HTML页面!
- Android学习笔记_31_通过后台代码生成View对象以及动态加载XML布局文件到LinearLayout
- [网络收集]读取XML 利用TreeView控件动态生成无限级树
- 使用nodejs动态生成网站sitemap.xml 优化抓取 —— SEO优化
- 用eclipse创建动态web项目手动生成web.xml方法
- Unity 动态生成 xml文档
- 动态解析XML生成EXCEL
- .Net中应用XML动态生成窗体
- ASP动态生成XML 首页图片轮显
- 使用Python读取TestTrack记录- Part3 动态生成Linq to xml查询语句筛选条件
- 演示使用DOM技术如何动态生成新的XML文档
- 通过XmlDocument动态生成XML文件