分享
 
 
 

采用XML数据来填充ASP表单

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在本篇文章里,我们会使用一个简单的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":

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表单里。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有