1、XML期末大作业实验报告大连海事大学本科生实验报告XML技术及其应用实验报告院 (系): 交通运输管理学院 专业班级: 电子商务 2011级 1班 课程名称: XML技术及其应用 姓 名: 周慧敏 学 号: 2220113494 指导教师: 翟军 完成日期:2013年 11月27日实验:解析与生成XML文件一、 实验名称:编程实现解析与生成XML文件的算法二、 实验目的:1理解生成与解析XML文件的算法原理及其应用。2掌握该算法的程序实现过程。3学会使用该算法对XML文件进行解析和生成XML文件。4知道如何将eclipse与access数据库连接,学会运用SQL算法将数据导入和导出数据库。三、
2、 实验要求:通过Java 编程实现对“通讯录”的XML 文档的解析,并把解析结果存到数据库的表中。进一步实现相反的过程,即将数据库表的内容读出来,并将其转化为XML 文件存储起来。四、实验内容与步骤:1.算法流程图:2. 实验步骤:(1). 调用contact.xml文件并解析try doc = builder.parse(new File(contact.xml); catch (SAXException e) e.printStackTrace(); NodeList nlCurrent = elmtuser.getElementsByTagName(name); name=nlCurre
3、nt.item(0).getFirstChild().getNodeValue(); System.out.println(name: + nlCurrent.item(0).getFirstChild().getNodeValue(); u.setname(name); (2). 将解析后得到的数据存入access数据库里的contact表中try Connection con = null; Statement sql; Connect.Store(u); catch (SQLException e) e.printStackTrace(); try con = DriverManager
4、.getConnection(url); Statement sta = con.createStatement(); sta.executeUpdate(String.format(insert into contact(id,name,phone,address) values(%d,%s,%s,%s), u.getid(),u.getname(),u.getphone(),u.getaddress(); (3). 导出存在access数据库中的数据try conn = DriverManager.getConnection(url); Statement sta = conn.creat
5、eStatement(); ResultSet result = sta.executeQuery(String.format(select * from contact where id=%d,id); if (result.next() user u=new user(); u.setname(result.getString(name); u.setphone(result.getString(phone); u.setaddress(result.getString(address); return u; return null; (4). 使用所得的数据生成新的contact1.xm
6、l文件try SuppressWarnings(resource) BufferedWriter changetoXml = new BufferedWriter(new FileWriter(xmlName); changetoXml.write(); changetoXml.newLine(); changetoXml.write(); for(int id=1;id3;id+) user u=Connect.getInformation(id); changetoXml.newLine(); changetoXml.write(); changetoXml.newLine(); chan
7、getoXml.write( + u.getname() + ); changetoXml.newLine(); changetoXml.write( + u.getphone() + ); changetoXml.newLine(); changetoXml.write( + u.getaddress() + ); changetoXml.newLine(); changetoXml.write( ); changetoXml.newLine(); changetoXml.write(); changetoXml.flush(); 五、实验结果:1. contact.xml文件:2.解析co
8、ntact.xml文件后的结果:3.数据存入access数据库中的contact表之后:4.生成的新的xml文件contact1.xml:六、实验总结:通过本次实验,了解并明白了解析与生成xml文件的算法,同时也掌握了连接数据库的方法,并且学会了使用SQL语句。在编程的过程中,遇到不明白的地方都会向同学请教,或者寻求搜索引擎的帮助,很多问题都逐个地解决了。源代码:Control.javapackage contact;public class Control public static void main(String args) throws Exception System.out.pri
9、ntln(解析contact的xml文件后的结果:); DomParse domparse=new DomParse(); domparse.Dom(); System.out.println(从access数据库中调用数据后,生成的新的xml文件contact1:); String xmlName = contact1.xml; Generate thisClass = new Generate(); thisClass.createXml(xmlName); Connect.javapackage contact;import java.sql.Connection;import java
10、.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class Connect static String url = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=db1.mdb; public static void Store(user u) throws SQLExcep
11、tion Connection con = null; try con = DriverManager.getConnection(url); Statement sta = con.createStatement(); sta.executeUpdate(String.format(insert into contact(id,name,phone,address) values(%d,%s,%s,%s), u.getid(),u.getname(),u.getphone(),u.getaddress(); finally con.close(); public static user ge
12、tInformation(int id) throws SQLException Connection conn = null; try conn = DriverManager.getConnection(url); Statement sta = conn.createStatement(); ResultSet result = sta.executeQuery(String.format(select * from contact where id=%d,id); if (result.next() user u=new user(); u.setname(result.getStri
13、ng(name); u.setphone(result.getString(phone); u.setaddress(result.getString(address); return u; return null; finally conn.close(); DomParse.javapackage contact;import javax.xml.parsers.*;import java.io.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import jav
14、a.sql.Statement;import org.w3c.dom.*;import org.xml.sax.SAXException;public class DomParse public void Dom() DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setIgnoringElementContentWhitespace(true); DocumentBuilder builder = null; try builder = factory.newDocumentBuil
15、der(); catch (ParserConfigurationException e) e.printStackTrace(); Document doc = null; try doc = builder.parse(new File(contact.xml); catch (SAXException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); String name,phone,address; Element contact = doc.getDocumentElement(); NodeLis
16、t nodeList = contact.getElementsByTagName(user); for (int i = 0; i nodeList.getLength() ; i+ ) user u=new user(); u.setid(i+1); Element elmtuser = (Element) nodeList.item(i); NodeList nlCurrent = elmtuser.getElementsByTagName(name); name=nlCurrent.item(0).getFirstChild().getNodeValue(); System.out.p
17、rintln(name: + nlCurrent.item(0).getFirstChild().getNodeValue(); u.setname(name); nlCurrent = elmtuser.getElementsByTagName(phone); phone=nlCurrent.item(0).getFirstChild().getNodeValue(); System.out.println(phone: + nlCurrent.item(0).getFirstChild().getNodeValue(); u.setphone(phone); nlCurrent = elm
18、tuser.getElementsByTagName(address); address=nlCurrent.item(0).getFirstChild().getNodeValue(); System.out.println(address: + nlCurrent.item(0).getFirstChild().getNodeValue(); u.setaddress(address); try Connection con = null; Statement sql; Connect.Store(u); catch (SQLException e) e.printStackTrace()
19、; user.javapackage contact;public class user int id; String name; String phone; String address; public void setid(int id) this.id=id; public int getid() return this.id; public void setname(String name) this.name=name; public String getname() return this.name; public void setphone(String phone) this.
20、phone=phone; public String getphone() return this.phone; public void setaddress(String address) this.address=address; public String getaddress() return this.address; Generate.javapackage contact;import java.io.BufferedWriter;import java.io.FileWriter;import java.sql.ResultSet;import java.sql.SQLExce
21、ption;import java.sql.Statement;public class Generate String xmlName=new String(); public void createXml(String s) xmlName = s; try SuppressWarnings(resource) BufferedWriter changetoXml = new BufferedWriter(new FileWriter(xmlName); changetoXml.write(); changetoXml.newLine(); changetoXml.write(); for
22、(int id=1;id3;id+) user u=Connect.getInformation(id); changetoXml.newLine(); changetoXml.write(); changetoXml.newLine(); changetoXml.write( + u.getname() + ); changetoXml.newLine(); changetoXml.write( + u.getphone() + ); changetoXml.newLine(); changetoXml.write( + u.getaddress() + ); changetoXml.newLine(); changetoXml.write( ); changetoXml.newLine(); changetoXml.write(); changetoXml.flush(); catch (Exception e) e.printStackTrace(); finally
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1