欢迎光临
我们一直在努力

采用XML数据来填充ASP表单-ASP教程,XML相关

建站超值云服务器,限时71元/月

本文作者brian schaffner是富士通咨询公司的副主任。他为富士通的技术咨询公司提供架构、设计和开发支持。

在本篇文章里,我们会使用一个简单的web表单,它会列出某个目录下的一些xml文件。然后,我们会从这个目录里选择一个文件,将它发送到另一个web表单里,后者会使用被选中的xml文件来填充某些文本字段。

示例xml

我们的示例xml文档包含有一组含有基本信息的元素,如listing a所示:

listing a: sample.xml

<sample>

<name>john doe</name>

<address>900 n. michigan ave</address>

<city>chicago</city>

<state>il</state>

<zip>60614</zip>

<phone>630-555-5555</phone>

</sample>

为了让本文的说明更加有趣,我们会再创建两个含有不同数据的示例文件,如listing b和listing c所示:

listing b: sample2.xml

<sample>

<name>george w. bush</name>

<address>1600 pennsylvania ave nw</address>

<city>washington</city>

<state>dc</state>

<zip>20500</zip>

<phone>202-456-1111</phone>

</sample>

listing c: sample3.xml

<sample>

<name>bill gates</name>

<address>1 microsoft way</address>

<city>redmond</city>

<state>wa</state>

<zip>98052</zip>

<phone>425-882-8080</phone>

</sample>

创建一个叫做c:\xmldocs的目录,并将所有三个示例文件放到这个目录下。

web表单

我们会为我们的应用程序创建两个web表单。我们要用第一个表单来选择xml文件,用第二个表单来显示xml数据。

首先要用visual studio .net创建一个新的asp.net web应用程序。然后将最初的表单保存为selectfile.aspx。如果你双击这个表单,代码编辑器就会被打开。

你首先需要把下面这一行加到代码的最前面,才能够将io包添加到你的应用程序里:

usingsystem.io;

然后,找到代码内的page_load()方法。你需要将这个方法编辑成像下面listing d里的代码一样:

listing d: selectfilespage_load() method

private void page_load(object sender, system.eventargs e) {

system.io.directoryinfo dir;

system.io.fileinfo[] files;

system.io.fileinfofinfo;

system.collections.ienumeratorfileenum;

dir = new directoryinfo ("c:\\xmldocs");

files = dir.getfiles ("*.xml");

fileenum = files.getenumerator();

response.write("please select the xml file to load: <br><br>\n");

while (fileenum.movenext()) {

finfo = (fileinfo) fileenum.current;

response.write("<a href=\"showdata.aspx?filename=" + finfo.name + "\">" + finfo.name + "</a><br>\n");

}

}

现在向你的项目里添加一个新的web表单——showdata.aspx。在这个表单里放置六个文本框,并将其命名为:txtname、txtaddress、txtcity、txtstate、txtzip和txtphone。同样的,在表单里创建六个标签,并将其标题栏分别命名为name(姓名)、address(地址)、city(城市)、state(州)、zip(邮政编码)和phone(电话)。

双击showdata表单来启动代码编辑器。你需要编辑showdata表单的page_load()方法,使其看起来就像listing e里的一样:

listing e: showdataspage_load() method

private void page_load(object sender, system.eventargs e) {

string filename;

xmltextreaderxmlreader;

filename = "c:\\xmldocs\\" + request.params.get("filename");

xmlreader = new xmltextreader(filename);

while (xmlreader.read()) {

if (xmlreader.nodetype == xmlnodetype.element) {

switch (xmlreader.localname) {

case "name":

txtname.text = xmlreader.readstring();

break;

case "address":

txtaddress.text = xmlreader.readstring();

break;

case "city":

txtcity.text = xmlreader.readstring();

break;

case "state":

txtstate.text = xmlreader.readstring();

break;

case "zip":

txtzip.text = xmlreader.readstring();

break;

case "phone":

txtphone.text = xmlreader.readstring();

break;

}

}

}

}

你还需要把下面这一行加到代码的最前面,才能够将xml包添加到你的应用程序里:

usingsystem.xml;

这段代码在本质上同我们在c#表单例子里所使用的代码相同。其主要的不同之处在于,我们不再利用按钮来调用这段代码,而且我们也不再需要使用openfiledialog控件来寻找xml文件。文件名是由selectfile的web表单所提供的,这段代码在showdata表单被加载的时候被调用。

我们使用xmltextreaders read()方法在xml文档里迭代。随着每次对read()的调用,我们都会处理另一个xml节点。我们只用简单地检查一下,以确保该节点是一个元素,然后就可以使用xml元素节点里的字符串数据来填充我们表格里相应的文本框了。

运行演示程序

一旦你完成了演示表单的编码和编译,你就已经准备好使用它们了。将你的web浏览器指向selectfile表单。当页面被载入的时候,它就应该能够列出我们先前创建的示例文件了。只用简单地点击其中一个文件名,你就会看到数据填充在showdata表单里。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 采用XML数据来填充ASP表单-ASP教程,XML相关
分享到: 更多 (0)

相关推荐

  • 暂无文章