//这里调用 数据是库表查的转为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>
分享到:
相关推荐
1. FindBugs:这个插件可以帮助开发者发现Java代码中的bug。它通过静态分析代码来检测潜在的错误,如空指针引用、空循环等常见的编程错误。FindBugs使用LesserGNU Public License许可。 2. Checkstyle:Checkstyle...
数据导入导出工具v1.0.4是一个优化过的版本,专注于提高数据处理效率和精简程序体积。这个工具删除了不必要的类和包,通过fatjar工具打包成一个仅约2.9MB的JAR文件,这使得它更加轻便且易于分发。由于它依赖外部Java...
6. **XML支持**:随着Web服务的兴起,Oracle9i加强了对XML的支持,提供了XML DB,使得数据库可以直接处理XML文档,增强了与Web应用的集成。 7. **数据仓库优化**:Oracle9i增强了数据仓库功能,包括快速查询优化器...
6. **XML支持**:Oracle 9i增强了对XML的支持,可以将XML文档存储在数据库中,并提供了XML SQL Utility (XSU)进行XML与SQL间的转换,方便了XML数据的处理和查询。 7. **网格计算**:9i是Oracle网格计算战略的一部分...
Perst 是一个简单,快速,便捷,面向对象适合Java与.NET的数据库。...●XML的导入/导出功能 ● 支持主-从复制 ● 可以过滤任何集合元素的一个SQL子集 ● 与AspectJ和JAssist AOP工具集成 Perst 支持 .Net 下的Linq。
JNI允许Java代码调用本地(非Java)代码,这样Java应用就可以直接调用已经存在的COM组件,就像它们是Java类一样。Jacob提供了大量的Java包装类,这些类对应于COM对象,使得开发者可以通过Java的方式来操作COM对象。 ...
3. **导出公钥证书**:如果需要提交给CA签署,可以使用以下命令导出证书请求: ``` keytool -certreq -keyalg RSA -alias tomcat -file cert_request.csr -keystore server_keystore ``` 然后将 `cert_request....
在Android平台上,处理Excel文件是常见的需求,例如数据导入、导出或数据分析。这个例子将讲解如何使用Apache POI库来读取xls和xlsx格式的文件。Apache POI是一个流行的开源Java API,专为Microsoft Office文件格式...
2. **开源**:FreeMind遵循GNU General Public License(GPL),意味着其源代码对公众开放,任何人都可以查看、修改和分发软件,促进了社区的持续改进和功能扩展。 3. **跨平台**:虽然这里的安装程序是针对Windows...
4. **导入导出**:FreeMind支持多种格式的导入导出,如.MIND、.XML、.TXT等,方便与其他软件共享。 5. **插件扩展**:FreeMind允许安装插件,增加更多功能,如集成其他应用、导出为PDF等。 6. **协作**:虽然Free...
- 包状态和JAVA会话状态:检查程序包的状态以及相关的JAVA会话。 - 查看结果集:查看测试执行后返回的数据。 - 查看DBMS_OUTPUT:输出PL/SQL程序中的调试信息。 - 查看HTP输出:用于调试Web程序的输出。 - 调试:...
“在库中的对应命令名”请务必准确填写静态库中公开导出的符号名称(C函数(cdecl)编译后,符号名称通常是在函数名称前加下划线(_));“在库中的对应命令名”以@开头表示以cdecl方式调用,否则表示以默认的stdcall...