java导出xml精简代码


//这里调用 数据是库表查的转为List<JSONObject>
XMLWriter.createXML("data_id,url,country,full_name,intro,service_field,activity,source,u_time,u_user,u_type", itentsite, "info_source_it_ent", export_url, "info_source_it_ent-" + DateUtil.getNowTime4String("yyyyMMddHHmmss") + ".xml");


package yq;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;

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

import net.sf.json.JSONObject;

import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;

public class XMLWriter {


//新建xml文件写入内容
public static void createXML(String eleNames, List<JSONObject> list, String tableName, String exportPath, String fileName) {
try {
// 1.得到DOM解析器的工厂实例
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// 2.从DOM工厂里获取DOM解析器
DocumentBuilder db = dbf.newDocumentBuilder();
// 3.创建document,即DOM树
Document docs = db.newDocument();

//创建根节点
Element docsElement = docs.createElement("root");
docs.appendChild(docsElement);
//创建子节点
Element system_idElement = docs.createElement("system_id");//系统id
Text system_id = docs.createTextNode("2");
system_idElement.appendChild(system_id);

Element table_nameElement = docs.createElement("table_name");//表名 填对应的编报系统表名
Text table_name = docs.createTextNode(tableName);
table_nameElement.appendChild(table_name);

Element datalistElement = docs.createElement("datalist");//数据列表节点

for (JSONObject json : list) {

Element dataElement = docs.createElement("data");//每条数据的节点

String[] names = eleNames.split(",");
for (int i = 0; i < names.length; i++) {
Element lableElement = docs.createElement(names[i]);
Text value = docs.createTextNode(json.getString(names[i]));
lableElement.appendChild(value);
dataElement.appendChild(lableElement);
}
datalistElement.appendChild(dataElement);
System.out.println(tableName + " export:" + json);
}

//添加父子关系
docsElement.appendChild(system_idElement);
docsElement.appendChild(table_nameElement);
docsElement.appendChild(datalistElement);

//docs.getDocumentElement().appendChild(docElement);//追加

//保存xml文件
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
DOMSource domSource=new DOMSource(docs);

// 创建保存目录
File toSave = new File(exportPath + "/");
if (!toSave.exists()) {
toSave.mkdirs();
}
toSave = new File(exportPath + "/" + fileName);
//设置编码类型
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
StreamResult result=new StreamResult(new FileOutputStream(toSave));

//把DOM树转换为xml文件
transformer.transform(domSource, result);
} catch (DOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}



//最后导出的效果
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <root>
<system_id>2</system_id>
<table_name>info_source_it_ent</table_name>
- <datalist>
- <data>
<data_id>134217730</data_id>
<url>http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack</url>
<country>美国</country>
<full_name>ZDNet</full_name>
<intro>ZDNet</intro>
<service_field>ZDNet</service_field>
<activity>15.0</activity>
<source>2</source>
<u_time>null</u_time>
<u_user>null</u_user>
<u_type>1</u_type>
</data>
- <data>
<data_id>134217732</data_id>
<url>http://weibo.com/</url>
<country>dddf</country>
<full_name>dfdf</full_name>
<intro>dfdf</intro>
<service_field>df</service_field>
<activity>12.0</activity>
<source>2</source>
<u_time>2013-10-27 12:25:51.0</u_time>
<u_user>admin</u_user>
<u_type>1</u_type>
</data>
- <data>
<data_id>134217733</data_id>
<url>http://www.CallBack</url>
<country>sdsd</country>
<full_name>xcx</full_name>
<intro>xcxc</intro>
<service_field>xc</service_field>
<activity>12.0</activity>
<source>2</source>
<u_time>2013-10-27 12:26:40.0</u_time>
<u_user>admin</u_user>
<u_type>1</u_type>
</data>
- <data>
<data_id>134217734</data_id>
<url>http://baodu.com/</url>
<country>sdsd</country>
<full_name>sd</full_name>
<intro>sd</intro>
<service_field>sd</service_field>
<activity>12.0</activity>
<source>2</source>
<u_time>2013-11-14 10:42:16.0</u_time>
<u_user>国飞飞</u_user>
<u_type>1</u_type>
</data>
- <data>
<data_id>134217735</data_id>
<url>http://www.baidu.com/</url>
<country>1</country>
<full_name>1</full_name>
<intro>1</intro>
<service_field>1</service_field>
<activity>1.0</activity>
<source>2</source>
<u_time>2014-05-07 10:48:49.0</u_time>
<u_user>admin</u_user>
<u_type>1</u_type>
</data>
</datalist>
</root>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值