首页 > 语言 > 关键词  > asp最新资讯  > 正文

采用XML数据来填充ASP表单

2008-05-04 13:35 · 稿源:新云

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

举报

  • 相关推荐
  • 雷军:小米汽车APP已上线小米YU7车主指南

    雷军今天一早宣布,小米汽车APP已正式上线小米YU7车主指南,为广大车主带来了更便捷、贴心的服务。 晕车舒缓模式在哪里设置?调光天幕在哪里调节?露营模式怎么用 以后这些小技巧搜一下就能解决了。 小米YU7车主指南涵盖了车辆设置、驾驶、语音控制、辅助驾驶、充放电、账户钥匙、维修保养、应急救援等多方面,提供了视频介绍,非常直观。 对于车辆常见故障,指�

  • GPT-5有望明天发布 OpenAI:免费无限使用

    OpenAI宣布将于太平洋时间7月4日上午10点(北京时间7月5日凌晨1点)举办重要直播活动。官方预告中"LIVESTREAM"误写为"LIVE5TREAM",引发网友猜测可能暗示GPT-5即将发布。消息称免费版ChatGPT将在标准设置下开放GPT-5对话功能,但会设置防滥用阈值;Plus和Pro用户则可享受更智能的GPT-5服务,包括语音交互、绘图创作等高级功能。此前CEO奥特曼曾透露GPT-5将整合多项前沿技术。若属实,这将是AI爱好者的重大福利,也将进一步提升ChatGPT的实用性和用户体验。

  • 从 Soul App 用 AI 重塑内容社区,看 Gen AI 浪潮下的社交新范式

    高分治愈动画电影《玛丽和马克思》8月8日在中国院线上映,豆瓣评分9.0。影片通过两位孤独灵魂跨越半个地球的书信往来,探讨了人际关系的深刻主题。社交平台Soul App借助AI技术,让用户能与电影主角虚拟形象互动,延续影片治愈内核。这不仅是电影IP的数字化延伸,更是AI在情感陪伴领域的创新实践。Soul通过构建多元虚拟角色矩阵,打造"内容场+情感连接"的社交新生态,让AI成为缓解孤独、促进真实社交的桥梁,重新定义人机关系。平台数据显示,18%的用户发帖源于社交场景中的情感需求,印证了现代人普遍存在的孤独感。Soul正通过生成式AI技术,构建更具温度和效率的数字社交空间。

  • OpenAI正式发布GPT-5模型 网友:写作像诗人

    OpenAI在直播活动中正式推出新一代人工智能模型GPT-5,宣称其覆盖编程、数学、写作、健康咨询、视觉感知等核心领域,实现"公司迄今为止最重大的模型升级"。OpenAI首席执行官萨姆·奥尔特曼(Sam Altman)形容,与GPT-5交互如同与各领域专家对话,其多维度能力突破将重塑人机协作模式。 分层开放策略满足多元需求 GPT-5将于本周四启动全球用户分批推送,免费用户与付�

  • GPT-5横空出世:API最低0.40美元,人人享“博士级智慧”

    OpenAI正式发布新一代旗舰模型GPT-5,CEO奥尔特曼称其智能水平如同与博士级专家对话。该模型在写作、编码、医疗等核心领域表现突出,幻觉率大幅降低80%,输出token数量减少50%-80%。GPT-5系列包含多个版本,其中GPT-5nano的API价格低至0.4美元/百万token,极具竞争力。基准测试显示GPT-5以68分位居榜首,超越Grok-4等对手。OpenAI同时宣布向所有用户开放使用,并计划升级语音模式,探索

  • iPhone 18 Pro首发!苹果最强基带曝光

    上个月微软面向商业客户推出了Surface Laptop 5G版本,它支持Nano SIM卡和eSIM两种方式,还可作为热点为其他设备提供网络。在Surface Laptop推出5G之际,苹果也在着手准备5G版Mac设备。 苹果记者Mark Gurman爆料,苹果最快会在2026年在Mac电脑上配备自研5G基带芯片,这将是苹果史上首款支持5G网络的Mac设备。 据悉,2026年的Mac电脑将搭载苹果新一代基带芯片C2,这颗基带由iPhone 18 Pro率先搭

  • 减少幻觉、不再谄媚!OpenAI:即日起 史上最强大的GPT-5将免费提供给用户

    这是我们迄今为止最智能、最快、最实用的模型,具有内置思维,可将专家级智能交到每个人手中。” OpenAI在官方新闻稿中写道,这是我们迄今为止最优秀的人工智能系统。GPT-5的智能性能远超我们之前的所有模型,在编码、数学、写作、健康、视觉感知等领域均拥有卓越的性能。 GPT-5 不仅在基准测试中超越了之前的模型,回答问题的速度也更快,而且最重要的是,它对现�

  • 2026年见!OPPO Find N6 Flip即将回归:首发骁龙8 Elite2小折叠

    这款手机将是继2023年发布的Find N3 Flip之后,OPPO再次推出的第三款小折叠手机。 据爆料者透露,OPPO Find N6 Flip将采用全新的设计,可能会使用大量钛金属来构建机身,使其更加轻薄耐用。 此外,OPPO Find N6 Flip预计将搭载高通骁龙8 Elite 2处理器,这将是全球首款采用该芯片的折叠手机。

  • 谷歌Pixel 10 Pro XL渲染图曝光:两大配色 8月20日发布

    谷歌Pixel 10 Pro XL的官方宣传渲染图近日曝光,新机将于8月20日发布,还剩不到2周的时间。 此次谷歌Pixel 10 Pro XL提供了月石”(Moonstone)和黑曜石”(Obsidian)两种配色,分别呈现柔和的浅灰蓝色调和经典的暗灰配金属高光边框设计。 机身右侧依旧是电源键与音量键组合,背部为横向延展的胶囊形三摄模组,内含闪光灯及红外温度传感器,整体厚度与重量与上代基本一致。 �

  • GPT-5和Claude 4 Opus谁更强?用这个AI大模型对比工具一眼明了

    OpenAI正式发布GPT-5,与Claude4Opus和Gemini2.5Pro进行对比测试。GPT-5在编程能力(SWE-bench测试74.9%)和数学推理(AIME2025测试94.6%)表现突出;Claude4Opus编程优异(72.5%)但数学较弱(33.9%);Gemini2.5Pro擅长长文本处理(100万token窗口)和多模态应用。价格方面,GPT-5和Gemini2.5Pro定价相近($1.25-$10),Claude4Opus较高($15-$75)。建议根据需求选择:GPT-5适合综合应用,Claude4Opus适合专业编程,Gemini2.5Pro适合长文档�