当前位置: 首页 > 图文教程 > 网络编程 > ASP > 采用XML数据来填充ASP表单

ASP
Access 2000 数据库 80 万记录通用快速分页类
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
收藏的ASP常用的函数集
asp分页的一个类
ASP开发网页牢记注意事项
ASP下操作Excel技术总结分析
ASP数据岛操作类
ASP经典分页类
asp论坛在线人数统计研究
ASP调用SQL SERVER存储程序
asp输出bmp
ASP连接数据库的全能代码
ASP面向对象编程探讨及比较
web文件管理器的后续开发
一小偷类!!有兴趣的可以看看
利用ASP实现事务处理的方法
大数量查询分页显示 微软的解决办法
如何把ASP编写成DLL
asp实现树型结构
超级ASP大分页_我的类容我做主

采用XML数据来填充ASP表单


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 234 ::
收藏到网摘: n/a

 

本文作者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: SelectFile'sPage_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: ShowData'sPage_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":
          txtAddr