XML期末大作业实验报告_第1页
XML期末大作业实验报告_第2页
XML期末大作业实验报告_第3页
XML期末大作业实验报告_第4页
XML期末大作业实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连海事大学本科生实验报告《XML技术及其应用》实验报告院(系):交通运输管理学院专业班级:电子商务2011级1班课程名称:XML技术及其应用姓名:周慧敏学号:2220113494指导教师:翟军完成日期:2013年11

实验:解析与生成XML文件实验名称:编程实现解析与生成XML文件的算法实验目的:1.理解生成与解析XML文件的算法原理及其应用。2.掌握该算法的程序实现过程。3.学会使用该算法对XML文件进行解析和生成XML文件。4.知道如何将eclipse与access数据库连接,学会运用SQL算法将数据导入和导出数据库。实验要求:通过Java编程实现对“通讯录”的XML文档的解析,并把解析结果存到数据库的表中。进一步实现相反的过程,即将数据库表的内容读出来,并将其转化为XML文件存储起来。四、实验内容与步骤:1.

算法流程图:开始开始调用contact.xml文件并解析将解析后得到的数据存入与eclipse连接的access里名为db1的数据库的contact表中导出存在access数据库中的数据使用所得的数据生成新的contact1.xml文件结束2.实验步骤:(1).调用contact.xml文件并解析try{ doc=builder.parse(newFile("contact.xml")); } catch(SAXExceptione){ e.printStackTrace(); } NodeListnlCurrent=elmtuser.getElementsByTagName("name"); name=nlCurrent.item(0).getFirstChild().getNodeValue(); System.out.println("name:"+nlCurrent.item(0).getFirstChild().getNodeValue()); u.setname(name); (2).将解析后得到的数据存入access数据库里的contact表中try{ Connectioncon=null; Statementsql; Connect.Store(u); } catch(SQLExceptione){ e.printStackTrace(); }try { con=DriverManager.getConnection(url); Statementsta=con.createStatement(); sta.executeUpdate(String.format("insertintocontact(id,name,phone,address)values(%d,'%s','%s','%s')", u.getid(),u.getname(),u.getphone(),u.getaddress())); }(3).导出存在access数据库中的数据try{ conn=DriverManager.getConnection(url); Statementsta=conn.createStatement(); ResultSetresult=sta.executeQuery(String.format("select*fromcontactwhereid=%d",id)); if(result.next()){ useru=newuser(); u.setname(result.getString("name")); u.setphone(result.getString("phone")); u.setaddress(result.getString("address")); returnu; } returnnull; }(4).使用所得的数据生成新的contact1.xml文件try{ @SuppressWarnings("resource") BufferedWriterchangetoXml=newBufferedWriter(newFileWriter(xmlName)); changetoXml.write("<?xmlversion=\"1.0\"encoding=\"gb2312\"?>"); changetoXml.newLine(); changetoXml.write("<contact>"); for(intid=1;id<3;id++){ useru=Connect.getInformation(id); changetoXml.newLine(); changetoXml.write("<user>"); changetoXml.newLine(); changetoXml.write("<name>"+u.getname()+"</name>"); changetoXml.newLine(); changetoXml.write("<phone>"+u.getphone()+"</phone>"); changetoXml.newLine(); changetoXml.write("<address>"+u.getaddress()+"</address>"); changetoXml.newLine(); changetoXml.write("</user>"); } changetoXml.newLine(); changetoXml.write("</contact>"); changetoXml.flush(); }五、实验结果:1.contact.xml文件:2.解析contact.xml文件后的结果:3.数据存入access数据库中的contact表之后:4.生成的新的xml文件contact1.xml:六、实验总结:通过本次实验,了解并明白了解析与生成xml文件的算法,同时也掌握了连接数据库的方法,并且学会了使用SQL语句。在编程的过程中,遇到不明白的地方都会向同学请教,或者寻求搜索引擎的帮助,很多问题都逐个地解决了。源代码:

Control.javapackagecontact;publicclassControl{ publicstaticvoidmain(String[]args)throwsException{ System.out.println("解析contact的xml文件后的结果:"); DomParsedomparse=newDomParse(); domparse.Dom(); System.out.println("从access数据库中调用数据后,生成的新的xml文件contact1:"); StringxmlName="contact1.xml"; GeneratethisClass=newGenerate(); thisClass.createXml(xmlName); }}Connect.javapackagecontact;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;publicclassConnect{ staticStringurl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=db1.mdb"; publicstaticvoidStore(useru)throwsSQLException{ Connectioncon=null; try { con=DriverManager.getConnection(url); Statementsta=con.createStatement(); sta.executeUpdate(String.format("insertintocontact(id,name,phone,address)values(%d,'%s','%s','%s')", u.getid(),u.getname(),u.getphone(),u.getaddress())); } finally { con.close(); } } publicstaticusergetInformation(intid)throwsSQLException{ Connectionconn=null; try{ conn=DriverManager.getConnection(url); Statementsta=conn.createStatement(); ResultSetresult=sta.executeQuery(String.format("select*fromcontactwhereid=%d",id)); if(result.next()){ useru=newuser(); u.setname(result.getString("name")); u.setphone(result.getString("phone")); u.setaddress(result.getString("address")); returnu; } returnnull; }finally{ conn.close(); } }}DomParse.javapackagecontact;importjavax.xml.parsers.*;importjava.io.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.sql.Statement;importorg.w3c.dom.*;importorg.xml.sax.SAXException;publicclassDomParse{ publicvoidDom(){ DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance(); factory.setIgnoringElementContentWhitespace(true); DocumentBuilderbuilder=null; try{ builder=factory.newDocumentBuilder(); } catch(ParserConfigurationExceptione){ e.printStackTrace(); } Documentdoc=null; try{ doc=builder.parse(newFile("contact.xml")); } catch(SAXExceptione){ e.printStackTrace(); } catch(IOExceptione){ e.printStackTrace(); } Stringname,phone,address; Elementcontact=doc.getDocumentElement(); NodeListnodeList=contact.getElementsByTagName("user"); for(inti=0;i<nodeList.getLength();i++){ useru=newuser(); u.setid((i+1)); Elementelmtuser=(Element)nodeList.item(i); NodeListnlCurrent=elmtuser.getElementsByTagName("name"); name=nlCurrent.item(0).getFirstChild().getNodeValue(); System.out.println("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=elmtuser.getElementsByTagName("address"); address=nlCurrent.item(0).getFirstChild().getNodeValue(); System.out.println("address:"+nlCurrent.item(0).getFirstChild().getNodeValue()); u.setaddress(address); try{ Connectioncon=null; Statementsql; Connect.Store(u); } catch(SQLExceptione){ e.printStackTrace(); } } } }user.javapackagecontact;publicclassuser{ intid;Stringname; Stringphone; Stringaddress; publicvoidsetid(intid){ this.id=id; } publicintgetid(){ returnthis.id; } publicvoidsetname(Stringname){ =name; } publicStringgetname(){ return; } publicvoidsetphone(Stringphone){ this.phone=phone; } publicStringgetphone(){ returnthis.phone; } publicvoidsetaddress(Stringaddress){ this.address=address; } publicStringgetaddress(){ returnthis.address; }}Generate.javapackagecontact;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassGenerate{StringxmlName=newString(); publicvoidcreateXml(Strings){ xmlName=s; try{ @SuppressWarnings("resource") BufferedWriterchangetoXml=newBufferedWriter(newFileWriter(xmlName));

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论