XML文件内容格式:XML文件为mysql数据库导出文件
<?xml version="1.0" standalone="yes"?>
<RECORDS>
<RECORD>
<id>123jkh12jnejdasjk1223</id>
<name>张三</name>
<age>18</age>
<sex>男</sex>
<phone>13767899999</phone>
</RECORD>
<RECORD>
<id>123qweasdzxcrtyfgh456</id>
<name>李四</name>
<age>18</age>
<sex>女</sex>
<phone>1896758976</phone>
</RECORD>
<RECORD>
<id>123qweoirejnsdasd</id>
<name>王四</name>
<age>18</age>
<sex>男</sex>
<phone>19089896666</phone>
</RECORD>
</RECORDS>
示例代码
public static void main(String[] args) throws DocumentException {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("D:/testFile/parser/data_all.xml"));
// 获取根元素
Element element = document.getRootElement();
System.out.println("Root: " + element.getName());
// 获取所有子元素
List<Element> childList = element.elements();
System.out.println("total child count: " + childList.size());
List<Map<String, String>> dataList = Lists.newArrayList();
List<String> title = Lists.newArrayList();
for (int i =0; i<childList.size(); i++) {
Element child = childList.get(i);
//获取子元素
List<Element> elementList = child.elements();
Map<String, String> data = Maps.newHashMap();
for (Element ele : elementList) {
String fieldName = ele.getName();
if (i == 0){
System.out.println("fieldName======" + fieldName);
title.add(fieldName);
}
String value = ele.getText();
System.out.println("第"+ (i+1) + "行的,value======" + value);
data.put(fieldName,value);
dataList.add(data);
}
}
String insertSql = getInsertSql("test_table", title, dataList);
System.out.println("insertSql=========" + insertSql);
}
public static String getInsertSql(String tableName, List<String> title, List<Map<String, String>> data) {
String insertSql = "insert into " + tableName + " values ";
for (int i = 0; i < data.size(); i++) {
Map<String, String> dataMap = data.get(i);
StringBuffer sql = new StringBuffer();
sql.append(" (");
for (int j=0; j<title.size(); j++){
String fieldName = title.get(j);
String value = dataMap.get(fieldName);
if (j == title.size() -1){
sql.append("'" + value + "'");
}else{
sql.append("'" + value + "',");
}
}
if (i == data.size() -1){
sql.append(")");
}else {
sql.append("),");
}
insertSql += sql.toString();
}
return insertSql;
}
运行结果
Root: RECORDS
total child count: 3
fieldName======id
第1行的,value======123jkh12jnejdasjk1223
fieldName======name
第1行的,value======张三
fieldName======age
第1行的,value======18
fieldName======sex
第1行的,value======男
fieldName======phone
第1行的,value======13767899999
第2行的,value======123qweasdzxcrtyfgh456
第2行的,value======李四
第2行的,value======18
第2行的,value======女
第2行的,value======1896758976
第3行的,value======123qweoirejnsdasd
第3行的,value======王四
第3行的,value======18
第3行的,value======男
第3行的,value======19089896666
insertSql=========insert into test_table values ('123jkh12jnejdasjk1223','张三','18','男','13767899999'), ('123jkh12jnejdasjk1223','张三','18','男','13767899999'), ('123jkh12jnejdasjk1223','张三','18','男','13767899999'), ('123jkh12jnejdasjk1223','张三','18','男','13767899999'), ('123jkh12jnejdasjk1223','张三','18','男','13767899999'), ('123qweasdzxcrtyfgh456','李四','18','女','1896758976'), ('123qweasdzxcrtyfgh456','李四','18','女','1896758976'), ('123qweasdzxcrtyfgh456','李四','18','女','1896758976'), ('123qweasdzxcrtyfgh456','李四','18','女','1896758976'), ('123qweasdzxcrtyfgh456','李四','18','女','1896758976'), ('123qweoirejnsdasd','王四','18','男','19089896666'), ('123qweoirejnsdasd','王四','18','男','19089896666'), ('123qweoirejnsdasd','王四','18','男','19089896666'), ('123qweoirejnsdasd','王四','18','男','19089896666'), ('123qweoirejnsdasd','王四','18','男','19089896666')