码迷,mamicode.com
首页 > 其他好文 > 详细

解析xml文件

时间:2014-08-04 20:58:47      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   os   io   文件   数据   

package com.cn.javaSE.dom4j;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


public class WriteXml extends BaseDao {

/**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
* @throws IOException
*/
private Connection conn;

public static void main(String[] args) throws SQLException,
    ClassNotFoundException {
   // TODO Auto-generated method stub
   //new WriteXml().WriteXmlFile("d://person.xml");
   new WriteXml().ReadXmlFile("d://person.xml");

}

/**
* @return 定义一个方法,用于从数据库中读取数据,然后把数据集存到xml文件中;
* @throws ClassNotFoundException
* @throws SQLException
*/
public int WriteXmlFile(String file) throws ClassNotFoundException,
    SQLException {

   conn = this.getConn();
   Statement st = null;
   try {
    st = conn.createStatement();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   }
   String sql = "select * from person";
   ResultSet rs = st.executeQuery(sql);
   Document document = DocumentHelper.createDocument();// 格式文件的输出;
   document.setXMLEncoding("gb2312");
   Date date = new Date();
   String s = date.toLocaleString();
   int value = 0; // 判断文件是否写入成功的标记;
   // 为xml添加注释;
   document.addComment("从数据库meemei中的表person读取数据放到person.xml文件中!修改日期:" + s);
   Element root = document.addElement("meemei");
   OutputFormat format = OutputFormat.createPrettyPrint();
   format.setEncoding("gb2312");
   while (rs.next()) {
    // 从数据库中读取数据
    Integer id = rs.getInt(1);

    String user = rs.getString(2);
    Float salary = rs.getFloat(3);
    Integer age = rs.getInt(4);
    String dept1 = rs.getString(5);
    System.out.println(id + user);

    Element element = root.addElement("person");
    Element ID = element.addElement("id");
    Element pname = element.addElement("pname");
    Element psalary = element.addElement("psalary");
    Element page = element.addElement("page");
    Element dept = element.addElement("dept");
    // 把从数据库中读取的数据放到xml中;
    ID.addText(String.valueOf(id));
    pname.addText(user);
    psalary.addText(String.valueOf(salary));
    page.addText(String.valueOf(age));
    dept.addText(dept1);
    XMLWriter writer;
    // 构造文件输出流;
    try {

     writer = new XMLWriter(new FileWriter(new File(file)), format);
     writer.write(document);
     writer.close();
     value = 1;// 执行成功,返回1 ;
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }

   }
   return value;
}

/**
* 从一个xml文件中读取数据,然后存到数据库中;
*
* @return
*/
public int ReadXmlFile(String file) {
   conn = this.getConn();
   SAXReader reader = new SAXReader();
   int value = 0 ;
   try {
    Document doc = reader.read(new File(file));
    Element element = doc.getRootElement();
    System.out.println("根节点:"+element.getName());//获得根节点
    List<Element> list = element.elements() ;

    Iterator<Element> it = list.iterator() ;
   
    String database = element.getName();
    System.out.println("数据库名:"+database);
    String table = "" ;
    Integer id = 0;
    String pname = "" ;
    Float psalary = 0.0f ;
    Integer page = 0 ;
    String dept = "" ;
   
    while ( it.hasNext() ) {
     Element e = it.next() ;
     System.out.println("---------------------------------------");
     System.out.println("表名:"+e.getName());
     table = e.getName () ;
     Iterator itor = e.elementIterator() ;
     while ( itor.hasNext() ) {
     //-------------id------------
     Node idNode = (Node) itor.next();
     String idName = idNode.getName();
     String idValue = idNode.getText();
     id = Integer.valueOf(idValue);
     System.out.println("节点:"+idName+"---->>值:"+idValue);
     //------------pname-------------
     Node nameNode = (Node) itor.next();
     String NameName = nameNode.getName();
     String NameValue = nameNode.getText();
     pname = NameValue ;
     System.out.println("节点:"+NameName+"---->>值:"+NameValue);
     //-------------psalary -------------
     Node salaryNode =(Node) itor.next();
     String salaryName = salaryNode.getName();
     String salaryValue = salaryNode.getText();
     psalary = Float.valueOf(salaryValue) ;
     System.out.println("节点:"+salaryName+"---->>值:"+salaryValue);
     //--------------page--------------
     Node ageNode = (Node) itor.next();
     String ageName = ageNode.getName();
     String ageValue = ageNode.getText();
     page = Integer.valueOf(ageValue);
     System.out.println("节点:"+ageName+"---->>值:"+ageValue);
     //--------------dept--------------
     Node deptNode =(Node) itor.next();
     String deptName = deptNode.getName();
     String deptValue = deptNode.getText();
     dept = deptValue ;
     System.out.println("节点:"+deptName+"---->>值:"+deptValue);
     String sql = " insert into "+table+ " values (?,?,?,?,?) ";
     try {
      PreparedStatement ps = conn.prepareStatement(sql);
      ps.setInt(1, id);
      ps.setString(2, pname);
      ps.setFloat(3, psalary);
      ps.setInt(4, page);
      ps.setString(5, dept);
      ps.executeUpdate();
     
     
     } catch (SQLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
     }
     System.out.println(sql);
     }
    
    }
   
   
   } catch (DocumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

   return value ;

}

}

 

解析xml文件,布布扣,bubuko.com

解析xml文件

标签:style   blog   color   java   os   io   文件   数据   

原文地址:http://www.cnblogs.com/NoEndForLearning/p/3890624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!