关闭

关于Java生成指定格式的xml文档

标签: javaxml
253人阅读 评论(0) 收藏 举报
分类:
<pre name="code" class="java">/**
*实体类
*/
package cn.voicecyber.update.entity;

public class Bug {
	private String C001; // 编号
	private int C002; // 类别
	private int C003;// 所属模块编号
	private String C004;// 所属模块名称
	private int C005;// 处理日期
	private int C006;// 重要等级
	private String C007;// 更新内容
	private String C008;// 更新内容对应ID
	private String C009;// 所属模块号对应ID
	private String C010;// 版本号

	public Bug() {
		super();
	}

	public Bug(String c001, int c002, int c003, String c004, int c005,
			int c006, String c007, String c008, String c009, String c010) {
		super();
		C001 = c001;
		C002 = c002;
		C003 = c003;
		C004 = c004;
		C005 = c005;
		C006 = c006;
		C007 = c007;
		C008 = c008;
		C009 = c009;
		C010 = c010;
	}

	public String getC001() {
		return C001;
	}

	public void setC001(String c001) {
		C001 = c001;
	}

	public int getC002() {
		return C002;
	}

	public void setC002(int c002) {
		C002 = c002;
	}

	public int getC003() {
		return C003;
	}

	public void setC003(int c003) {
		C003 = c003;
	}

	public String getC004() {
		return C004;
	}

	public void setC004(String c004) {
		C004 = c004;
	}

	public int getC005() {
		return C005;
	}

	public void setC005(int c005) {
		C005 = c005;
	}

	public int getC006() {
		return C006;
	}

	public void setC006(int c006) {
		C006 = c006;
	}

	public String getC007() {
		return C007;
	}

	public void setC007(String c007) {
		C007 = c007;
	}

	public String getC008() {
		return C008;
	}

	public void setC008(String c008) {
		C008 = c008;
	}

	public String getC009() {
		return C009;
	}

	public void setC009(String c009) {
		C009 = c009;
	}

	public String getC010() {
		return C010;
	}

	public void setC010(String c010) {
		C010 = c010;
	}

}
/**
*开始
*/
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

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

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

public class Xml2 {
	/**
	 * 将XML文件输出到指定的路径
	 * 
	 * @param doc
	 * @param fileName
	 * @throws Exception
	 */
	public static void main(String[] args) {
		Date date = new Date();
		SimpleDateFormat fomat2 = new SimpleDateFormat("yyyyMMddHHmmss");
		String mydate = fomat2.format(date);
		String outputPath = "D:/Java/XML/UpdateInfo" + mydate + ".xml";
		generateXml(outputPath);
	}
	
	public static void generateXml(String outputPath) {
		try {
			/*********获取数据库连接*************/
			Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();// 数据库驱动
			String url = "jdbc:oracle:thin:@192.168.4.182:1521:PFORCL";// 数据库链接地址
			String user = "PFDEV831";// 用户名
			String password = "pfdev831";// 密码
			Connection conn = DriverManager.getConnection(url, user, password);// 建立connection
			Statement stmt = conn.createStatement();
			conn.setAutoCommit(false);// 更改jdbc事务的默认提交方式

			String sql = "select * from t_update_LIST";// 查询语句
			ResultSet rs = stmt.executeQuery(sql);// 得到结果集
			conn.commit();// 事务提交
			conn.setAutoCommit(true);// 更改jdbc事务的默认提交方式
			List<Bug> list = new ArrayList<Bug>();// 创建取结果的列表,之所以使用列表,不用数组,因为现在还不知道结果有多少,不能确定数组长度,所有先用list接收,然后转为数组
			while (rs.next()) {// 如果有数据,取出添加如list
				Bug bug = new Bug();
				bug.setC001(rs.getString(1));
				bug.setC002(rs.getInt(2));
				bug.setC003(rs.getInt(3));
				bug.setC004(rs.getString(4));
				bug.setC005(rs.getInt(5));
				bug.setC006(rs.getInt(6));
				bug.setC007(rs.getString(7));
				bug.setC008(rs.getString(8));
				bug.setC009(rs.getString(9));
				bug.setC010(rs.getString(10));
				list.add(bug);
			}
			if (list != null && list.size() > 0) {// 如果list中存入了数据,转化为数组
				Bug[] arr = new Bug[list.size()];// 创建一个和list长度一样的数组
				System.out.println(arr.length); // 看下数组长度是多少,可以省略

				for (int i = 0; i < list.size(); i++) {
					arr[i] = list.get(i);// 给数组赋值
				}
				List<Bug> list1 = Arrays.asList(arr);// 将数组转换成List
				Document doc = generateXml(list1);// 生成XML文件
				outputXml(doc, outputPath);// 将文件输出到指定的路径
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.err.println("出现异常");
		}
	}

	private static void outputXml(Document doc, String fileName)
			throws Exception {
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer transformer = tf.newTransformer();
		DOMSource source = new DOMSource(doc);
		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
		transformer.setOutputProperty(OutputKeys.INDENT, "yes");// 设置文档的换行与缩进
		PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
		StreamResult result = new StreamResult(pw);
		transformer.transform(source, result);
		System.out.println("生成XML文件成功!");
	}

	/**
	 * 生成XML文件
	 * 
	 * @param list
	 * @return
	 */
	public static Document generateXml(List<Bug> list) {
		Document doc = null;
		Element root = null;
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			doc = builder.newDocument();
			root = doc.createElement("Modules");
			doc.appendChild(root);
		} catch (Exception e) {
			e.printStackTrace();
			return null;// 如果出现异常,则不再往下执行
		}

		int len = list.size();
		Element element;
		for (int i = 0; i < len; i++) { // 打印的顺序是根据英文字母先后顺序排序的
			Bug Bug = list.get(i);
			element = doc.createElement("Module");
			element.setAttribute("SerialNo", "" + Bug.getC001());
			element.setAttribute("Name", "" + Bug.getC001());
			element.setAttribute("Type", "" + Bug.getC002());
			element.setAttribute("ModuleID", "" + Bug.getC003());
			element.setAttribute("ModuleName", "" + Bug.getC004());
			//element.setAttribute("ErrorReply", "" + Bug.getC005());
			element.setAttribute("Levels", "" + Bug.getC006());
			element.setAttribute("Content", "" + Bug.getC007());
			element.setAttribute("Lang", "" + Bug.getC008());
			element.setAttribute("ModuleLangID", "" + Bug.getC009());
			element.setAttribute("Description", "" + Bug.getC010());
			root.appendChild(element);
		}
		return doc;
	}
}
源码下载:xml
0
0
查看评论

Java 创建指定格式的文件

两种思路: 1: 在创建IO流的时候,指定编码 [java] view plaincopy try{           ...
  • djun100
  • djun100
  • 2013-09-04 14:08
  • 1378

根据指定 日期格式 生成 指定格式的指定日期

根据指定 日期格式 生成 指定格式的指定日期
  • SZ_HMT
  • SZ_HMT
  • 2017-08-02 16:06
  • 160

四种生成和解析XML文档的方法

四种生成和解析XML文档的方法众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DOM4J下面首先给出这四种方法的jar包下载地址DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里SAX:http://sourceforge.net/...
  • github_39295111
  • github_39295111
  • 2017-08-06 11:01
  • 458

POI编程——java程序中输出指定格式的Excel表格

一、基础知识: 1. 创建工作簿Workbook   Workbook wb = new HSSFWorkbook(); 2.创建工作表Sheet   Workbook wb ...
  • u010964820
  • u010964820
  • 2013-06-27 16:23
  • 1483

Java输出特定时间段特定格式时间信息

场景:利用Java语言输出连续某一段时间固定格式的时间信息 Java代码 String startDate = "20150916"; String endDate = "20150919"; SimpleDateFormat sdf = new ...
  • hfut_jf
  • hfut_jf
  • 2015-11-13 20:38
  • 1390

java 生成txt文档 指定编码格式

java生成txt文档,指定编码格式 /** * 写入txt文件 * * @param result * @param fileName * @return */ public static boolean writeDataH...
  • fenfenguai
  • fenfenguai
  • 2017-12-28 12:17
  • 105

js生成指定格式的时间(yyyymmddHHmiss)

//生成指定格式的时间(yyyymmddHHmiss) function getDate(){ var date = new Date(); var month = date.getMonth()+1; var ms; if(month var dateS = "" ...
  • u014136910
  • u014136910
  • 2016-04-25 22:49
  • 494

格式良好的XML文档 (well formed XML)

创建格式良好的XML文档,其实就是使得我们的XML文档能够符合W3C的XML1.0规范。      1.XML中元素:           前面我们说过,XML的语法要求很严格的,所有的XML标记要关闭的.包含...
  • wuseyukui
  • wuseyukui
  • 2013-11-02 17:25
  • 1861

Java如何将指定字符串转化为指定日期格式

传过来的字符串是什么“形状”就格式化成什么形状,就可以得到想要的日期“形状”了。package timeutil; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;pu...
  • qy20115549
  • qy20115549
  • 2016-10-08 14:58
  • 9352

xml笔记(二)——xml文档的规范

第二节:xml文档规范Xml文档的分类1、  格式不良好(malformed)的xml文档:完全没有遵守xml文的基本规范的xml文档。2、  格式良好(well-formed)的但无效的xml文档: 遵守xml文的基本规范,但没有使用dtd或schema定义语义约束的xml文档...
  • yinghuayu1324117
  • yinghuayu1324117
  • 2011-03-08 20:30
  • 7938
    个人资料
    • 访问:40411次
    • 积分:702
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:1篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论