作者:陈俊英围脖_687 | 来源:互联网 | 2014-05-05 09:01
在本篇文章里,我们会应用一个简略的Web表单,它会列出某个目录下的一些XML文件。然后,我们会从这个目录里选择一个文件,将它发送到另一个Web表单里,后者会应用被选中的XML文件
在本篇文章里,我们会应用一个简略的Web表单,它会列出某个目录下的一些XML文件。然后,我们会从这个目录里选择一个文件,将它发送到另一个Web表单里,后
者会应用被选中的XML文件来填充某些文本字段。
示例XML
我们的示例XML文档包含有一组含有基础信息的元素,如
Listing A所示:
以下为引用的内容:
Listing A: sample.xml
John Doe
900 N. Michigan Ave
Chicago
IL
60614
630-555-5555
为了让本文的阐明更加有趣,我们会再创立两个含有不同数据的示例文件,如Listing B和Listing C所示:
以下为引用的内容:
Listing B: sample2.xml
George W. Bush
1600 Pennsylvania Ave NW
Washington
DC
20500
202-456-1111
Listing C: sample3.xml
Bill Gates
1 Microsoft Way
Redmond
WA
98052
425-882-8080
创立一个叫做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:
\n");
while (fileEnum.MoveNext()) {
finfo = (FileInfo) fileEnum.Current;
Response.Write("" finfo.Name "
\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表单里。