XML期末大作业实验报告.docx

上传人:b****7 文档编号:10270282 上传时间:2023-02-09 格式:DOCX 页数:14 大小:73.67KB
下载 相关 举报
XML期末大作业实验报告.docx_第1页
第1页 / 共14页
XML期末大作业实验报告.docx_第2页
第2页 / 共14页
XML期末大作业实验报告.docx_第3页
第3页 / 共14页
XML期末大作业实验报告.docx_第4页
第4页 / 共14页
XML期末大作业实验报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

XML期末大作业实验报告.docx

《XML期末大作业实验报告.docx》由会员分享,可在线阅读,更多相关《XML期末大作业实验报告.docx(14页珍藏版)》请在冰豆网上搜索。

XML期末大作业实验报告.docx

XML期末大作业实验报告

大连海事大学本科生实验报告

 

《XML技术及其应用》实验报告

院(系):

交通运输管理学院

专业班级:

电子商务2011级1班

课程名称:

XML技术及其应用

姓名:

周慧敏

学号:

2220113494

指导教师:

翟军

 

完成日期:

2013年11月27日

实验:

解析与生成XML文件

一、实验名称:

编程实现解析与生成XML文件的算法

二、实验目的:

1.理解生成与解析XML文件的算法原理及其应用。

2.掌握该算法的程序实现过程。

3.学会使用该算法对XML文件进行解析和生成XML文件。

4.知道如何将eclipse与access数据库连接,学会运用SQL算法将数据导入和导出数据库。

三、实验要求:

通过Java编程实现对“通讯录”的XML文档的解析,并把解析结果存到数据库的表中。

进一步实现相反的过程,即将数据库表的内容读出来,并将其转化为XML文件存储起来。

四、实验内容与步骤:

1. 算法流程图:

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("");

for(intid=1;id<3;id++){

useru=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();

}

 

五、实验结果:

1.contact.xml文件:

2.解析contact.xml文件后的结果:

3.数据存入access数据库中的contact表之后:

4.生成的新的xml文件contact1.xml:

六、实验总结:

通过本次实验,了解并明白了解析与生成xml文件的算法,同时也掌握了连接数据库的方法,并且学会了使用SQL语句。

在编程的过程中,遇到不明白的地方都会向同学请教,或者寻求搜索引擎的帮助,很多问题都逐个地解决了。

源代码:

 

Control.java

packagecontact;

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.java

packagecontact;

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.java

packagecontact;

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

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.java

packagecontact;

publicclassuser{

intid;

Stringname;

Stringphone;

Stringaddress;

publicvoidsetid(intid){

this.id=id;

}

publicintgetid(){

returnthis.id;

}

publicvoidsetname(Stringname){

this.name=name;

}

publicStringgetname(){

returnthis.name;

}

publicvoidsetphone(Stringphone){

this.phone=phone;

}

publicStringgetphone(){

returnthis.phone;

}

publicvoidsetaddress(Stringaddress){

this.address=address;

}

publicStringgetaddress(){

returnthis.address;

}

}

Generate.java

packagecontact;

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));

changetoXml.write("

xmlversion=\"1.0\"encoding=\"gb2312\"?

>");

changetoXml.newLine();

changetoXml.write("");

for(intid=1;id<3;id++){

useru=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(Exceptione){

e.printStackTrace();

}

finally{

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1