日期:2014-05-17  浏览次数:20556 次

XML经典问题!
package com.xml.toxml;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.AttributedCharacterIterator.Attribute;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
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.*;

public class ToXml {


public static void main(String[] args) {
//声明数据库的url,用户名和密码;"watchWindows"为数据源名称
String url="jdbc:odbc:watchWindows";
String user="sa";
String password="";
Connection conn;
try{
//加载数据库驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
//获取数据库连接
conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
//查询数据库,放入记录中

ResultSet rst = st.executeQuery("select * from watchs");
if(rst!=null){
//如果有记录,调用writeXML方法,把记录传给writeXML方法
writeXML(rst);
}else{
System.out.println("数据库中没有数据!");
}
}catch(Exception e){
e.printStackTrace();
}
}
//定义创建XML文件的方法
public static void writeXML(ResultSet rst){
ResultSet set=rst;
Element element;
boolean flag;
try{
//获得解析工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//创建DOM解析器
DocumentBuilder builder = factory.newDocumentBuilder();
//创建一个document对象
Document document = builder.newDocument();

//建立文件根节点
Element rootElement = document.createElement("watchs");
//将根节点追加为document的子节点
document.appendChild(rootElement);
//遍历记录集,创建XML文件的各个节点
while(set.next()){
//创建watch节点
//System.out.println("\n");
Element sElement = document.createElement("watch");
//将watch追加为根节点的子节点
rootElement.appendChild(sElement);
//创建name子节点
//Attr attr = (Attr) document.createAttribute("brand");
//sElement.getAttribute(set.getString("w_brand"));
sElement.setAttribute("brand",set.getString("w_brand") );

//创建一个Text类型节点并追加为name节点的子节点
//element.appendChild(document.createTextNode(set.getString("w_brand")));
//将name节点追加为watch节点的子节点
//sElement.appendChild(element);

//创建price子节点
element = document.createElement("name");
element.appendChild(document.createTextNode(set.getString("w_name")));
sElement.appendChild(element);

//创建price子节点
element = document.createElement("price");
element.appendChild(document.createTextNode(set.getString("w_price")));
sElement.appendChild(element);

//创建marque子节点
element = document.createElement("marque");
element.appendChild(document.createTextNode(set.getString("w_marque")));
sElement.appendChild(element);

//创建users子节点
element = document.createElement("users");
element.appendChild(document.createTextNode(set.getString("w_users")));
sElement.appendChild(element);

//创建movement子节点
element = document.createElement("movement");
element.appendChild(document.createTextNode(set.getString("w_movement")));
sElement.appendChild(element);

//创建movement-type子节点
element = document.createElement("movemen