前言
在工作中,尝试用dom4j来解析xml文件,然后可以插入到数据库表中,这样可以在数据库插入数据就方便很多了,现在小编就先带大家去了解一下基本知识,然后再去看看具体的实现过程。
扩展
dom4j?
dom4j 是JAVA的xml的API文档,用来读取xml文件的。dom4j应用于 Java 平台,采用 Java 集合框架并完全支持 DOM,SAX 和 JAXP。
XML?
XML 是各种应用程序之间进行数据传输和存储的最常用的工具,并且在信息存储和描述领域变得越来越流行。
实例
xml文件
<?xml version="1.0" encoding="utf-8"?>
<ACCESOS>
<item>
<SOCIO>
<NUMERO>00045050</NUMERO>
<REPOSICION>0</REPOSICION>
<NOMBRE>MOISES MORENO</NOMBRE>
<TURNOS>
<LU>T1</LU>
<MA>T2</MA>
<MI>T3</MI>
<JU>T4</JU>
<VI>T5</VI>
<SA>T6</SA>
<DO>T7</DO>
</TURNOS>
</SOCIO>
</item>
<item>
<SOCIO>
<NUMERO>00045051</NUMERO>
<REPOSICION>0</REPOSICION>
<NOMBRE>RUTH PENA</NOMBRE>
<TURNOS>
<LU>S1</LU>
<MA>S2</MA>
<MI>S3</MI>
<JU>S4</JU>
<VI>S5</VI>
<SA>S6</SA>
<DO>S7</DO>
</TURNOS>
</SOCIO>
</item>
</ACCESOS>
读取xml
package com.drp.xml;
import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestXMLImport {
public static void main(String[] args) {
String sql="insert into T_XML(NUMERO, REPOSICION, NOMBRE, TURNOS) values (?, ?, ?, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DbUtil.getConnection();
pstmt = conn.prepareStatement(sql);
//读取xml文件
Document doc = new SAXReader().read(new File("D:/java/MyEclipse 10/test_xmlImport/xml/test.XML"));
//获取xml文件的节点
List itemList = doc.selectNodes("/ACCESOS/item/SOCIO");
//遍历读出的xml中的节点
for(Iterator iter = itemList.iterator(); iter.hasNext();){
Element el = (Element)iter.next();
//读取节点的内容并赋值
String numero = el.elementText("NUMERO");
String reposicion = el.elementText("REPOSICION");
String nombre = el.elementText("NOMBRE");
//遍历TURNOS节点中的内容
List turnosList = el.elements("TURNOS");
StringBuffer sbString = new StringBuffer();
//用迭代器进行遍历
for (Iterator iterator = turnosList.iterator(); iterator
.hasNext();) {
Element turnosElt = (Element) iterator.next();
String lu = turnosElt.elementText("LU");
String ma = turnosElt.elementText("MA");
String mi = turnosElt.elementText("MI");
String ju = turnosElt.elementText("JU");
String vi = turnosElt.elementText("VI");
String sa = turnosElt.elementText("SA");
String doo = turnosElt.elementText("DO");
sbString.append(lu + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo);
}
//为sql语句赋值
pstmt.setString(1, numero);
pstmt.setString(2, reposicion);
pstmt.setString(3, nombre);
pstmt.setString(4, sbString.toString());
pstmt.addBatch();
}
//批量执行sql语句
pstmt.executeBatch();
System.out.print("将XML导入数据库成功");
} catch (Exception e) {
e.printStackTrace();
}finally{
DbUtil.close(pstmt);
DbUtil.close(conn);
}
}
}
总结
关于dom4j、xml还有没有更强大的功能呢,在后面的日子里慢慢的去发现、去实践,去了解。