能帮我个忙吗?java解析xml文件,然后把数据存到数据里

<Data> <table> <id>143</id> <name>yaya</name> <address>beijing</address> </table> </Data>
2024-12-16 00:28:44
推荐回答(3个)
回答1:

我使用的是Mysql关键在解析xml,插入数据根据自己情况做.

准备工作:将你的数据放到xml,修改我下面代码的路径

查看图片结果.

本例子是采用dom4j操作xml的,需要把dom4j jar包导入,如果没有向我要.

1 创建表:

CREATE TABLE `t_data` (

  `id` int(11) DEFAULT NULL,

  `name` varchar(30) DEFAULT NULL,

  `address` varchar(30) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 代码:

import java.io.File;

import java.sql.Connection;

import java.sql.DriverManager;

import java.util.Iterator;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class InsertData {

/**

 * @功能 读取xml 

 * @author hzh    372613221@qq.com

 * @return

 */

public void analyNews() {

try {

// 创建文件对象

File file = new File("c:\\data.xml");

SAXReader reader = new SAXReader();

// 读取文件

Document document = reader.read(file);

// Element root = document.getRootElement();

// 获取root节点下所有的new节点

List list = document.selectNodes("Data/table");

Iterator iter = list.iterator();

while (iter.hasNext()) {

NewData newBean = new NewData();

Element ownerElement = (Element) iter.next();

// 获取table节点下id节点的值

newBean.setId(Integer.parseInt(ownerElement.elementText("id")));

// 获取table节点下name节点的值

newBean.setName(ownerElement.elementText("name"));

// 获取table节点下address节点的值

newBean.setAddress(ownerElement.elementText("address"));

//插入表

addData(newBean);

}

} catch (DocumentException e) {

e.printStackTrace();

}

}

/**

 * 

 * 传统方法 得到连接对象

 */

public Connection getConn(){

Connection conn=null;

try {

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8","root","123456");

} catch (Exception e) {

e.printStackTrace();

}

return conn;

}

public void addData(NewData data) {

try {

StringBuffer sql = new StringBuffer();

sql.append("insert into t_data (id,NAME,address) values(");

sql.append(data.getId()+",'");

sql.append(data.getName()+"','");

sql.append(data.getAddress()+"')");

getConn().prepareStatement(sql.toString()).execute();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

new InsertData().analyNews();

}

class NewData{

private int id;

private String name;

private String address;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

}

}

帮助IT软件人士解决问题...更多知道加QQ:372613221帮你解答  加好友请备注来历  祝你好运

回答2:

保存在Java对象中,这是必须的,不然你解析它也就没有意义了。
希望对你有启发

回答3:

利用dom4j即可简单,可自学,多读读api就行