仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3417|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网站制作之将Web页面转换成XML数据源

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。web|xml|数据|数据源|页面|转换   本文将为你供应了一个壮大而天真的办法,旨在从现有的HTML文件中提取并组分解成心义的数据。

HTML和Web已永久地改动了人们通讯与沟通的体例,HTML对人们来讲很便利,它使得信息更容易于检查和飞行,但遗憾的是,它对盘算机之间的交换就远远没有那末便利了:Web页面上因为层的完成代码,使得盘算机体系都难以找到和利用数据。这时候,XML应运而生,它许诺要对盘算机体系之间通讯的体例起到一样的感化,XML将成为信息在分歧盘算机体系之间活动的公用言语。使用本文中引见的复杂编程手艺,你可以将任何HTML页面转换成一个XML数据源。

例程申明
想象有一个花店,每一个礼拜都要依据价钱从3个鲜花零售商中的一个进货。每一个礼拜,东主都要检查每一个零售商的Web站点来找到最低的价钱。东主想把这三个零售商的价钱信息都组合到一个Web页面中来简化他搜刮的进程。

上面就示范若何从3个Web页面中提守信息而且将它们联合到一个单一的XML文档中。咱们为这个例子创立了3个鲜花零售商的页面:

<>
<>
<>

出于示范目标,每次会见页面时,每一个页面上的价钱城市改动。别的,因为Web页面常常会把相干数据放在HTML表格中,样本页面和使用法式将侧重从表格中而不是从其它标志中恢覆信息。

处理计划
下表包括了一个含有你需求的数据的样本XML文件Flowers.xml:

<Flowers><Flower><Vendor>FakeFlowers</Vendor><Name>Daffodil</Name>
<Price>$2.00</Price></Flower>
<Flower><Vendor>FictitiousFlowers</Vendor><Name>Daffodil</Name><Price>$5.00</Price>
</Flower>
<Flower><Vendor>PretendFlowers</Vendor>
<Name>Daffodil</Name><Price>$3.50</Price></Flower>
</Flowers>


如今你需求编写代码,直接从响应的零售商Web站点中提取鲜花的称号和价钱。一个处理计划是在XML文档中放置特别的标志,今后用站点中的值来取代。这类办法与XSL不异。要想如许做,你可以界说一个新的元言语,它可以让你向XML中增添可交换的标志。
这个新的元言语需求完成以下义务:

辨认文档,以便晓得它是在利用这个言语
供应一个办法,以指定包括着你想恢单数据的Web页面
指定若何从每一个页面恢复特定的数据元素。上面的例子提取前一个XML文件,而且包括了新的元言语标志来完成下面所罗列的3个方针:
<WG:Documentxmlns:WG="">
<Flowers>
<WG:Templateurl="">
<Flower>
<Vendor>FakeFlowers</Vendor>
<Name><WG:GetTableElementpos="1"row="8"col="1"/></Name>
<Price><WG:GetTableElementpos="1"row="8"col="4"/></Price>
</Flower>
</WG:Template>
<WG:Templateurl="">
<Flower>
<Vendor>FictitiousFlowers</Vendor>
<Name><WG:GetTableElementpos="1"row="6"col="2"/></Name>
<Price><WG:GetTableElementpos="1"row="6"col="3"/></Price>
</Flower>
</WG:Template>
<WG:Templateurl="">
<Flower>
<Vendor>PretendFlowers</Vendor>
<Name><WG:GetTableElementpos="1"row="3"col="1"/></Name>
<Price><WG:GetTableElementpos="1"row="3"col="4"/></Price>
</Flower>
</WG:Template>
</Flowers>
</WG:Document>

第二个XML例子有一个包裹元素叫做Document,放置在原始XML的两端。Document元素为这个叫做WebGather的新元言语界说了称号空间。WebGatherSchema.xml文件中界说了WebGather言语元素:

<!—WebGatherschema-->
<Schemaxmlns="urn:schemas-microsoft-com:xml-data">
<elementtype='Document'>
<elementtype='Template'>
<attributetype='url'/>
<elementtype='GetTableElement'>
<attributetype='pos'/>
<attributetype='row'/>
<attributetype='col'/>
</element>
</element>
</element>
</Schema>

WebGatherschema答应利用三品种型的XML元素:Template(模板)元素只要一个属性"URL",它界说了包括数据的源Web页面。GetTableElement标志是一个在Template元素中界说的页面内表格中一个单位的内容占位符。GetTableElement标志有三个属性,第一个属性叫做"pos",它界说了HTMLWeb页面中表格元素的索引号,个中第一个表格就是1;"row"和"col"属性界说了包括数据的表格中的单位。

详细完成
元言语需求履行才干起感化。我利用了一个VisualBasicDLL工程文件,个中只包括了一个类叫做MetaGather。这个类利用了一个公共办法,叫做Transform,它吸收一个XML字符串,个中包括WebGather标志,它代替带有来自指定Web页面值的那些标志,生成XML字符串。这个类利用了MicrosoftInternetExplorer控件来恢复Web页面,并从XML字符串参数中的Template标志中读取包括数据的页面URL。

PrivateFunctionLoadPage_
(ByValstrURLAsString)AsBoolean
'Initializethedownloadcompleteflag
m_bDownloadComplete=False

'Loadthepagetomakesureits
'notthecachedversion
m_IE.NavigatestrURL,4

'Waituntildocumentfinishesloading
Whilem_IE.ReadyState<>READYSTATE_COMPLETE
DoEvents
Wend

'Checkifyouendedupontheerrorpage
Ifm_IE.Document.Title=_
"Thepagecannotbefound"Or_
m_IE.Document.Title="Nopagetodisplay"_
Then
LoadPage=False
Else
LoadPage=True
EndIf
EndFunction

LoadPage函数挪用MicrosoftInternet控件的Navigate办法从Internet中取回页面内容。Navigate任务体例是分歧步的,因而在持续之前必需要守候页面装载。这可以经由过程利用一个轮回以守候一个模块级其余标记设置完成来完成。DownloadComplete事务被激活时,这个标记就被设置。凡是Navigate办法被挪用时,DownloadComplete事务就被激活。如许一来,即便是导航掉败,也能包管这个标记终究会被设置为真,然后咱们就加入轮回。ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。
分手快乐 该用户已被删除
沙发
发表于 2015-2-16 00:50:33 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-3-4 20:05:59 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
金色的骷髅 该用户已被删除
地板
发表于 2015-3-11 05:08:04 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
5#
发表于 2015-3-17 11:54:52 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
蒙在股里 该用户已被删除
6#
发表于 2015-3-19 04:36:35 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
只想知道 该用户已被删除
7#
发表于 2015-3-31 04:36:28 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
小女巫 该用户已被删除
8#
发表于 2015-3-31 13:09:15 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
若天明 该用户已被删除
9#
发表于 2015-4-7 23:22:47 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
小妖女 该用户已被删除
10#
发表于 2015-4-11 02:11:48 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
乐观 该用户已被删除
11#
发表于 2015-4-12 13:09:39 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
冷月葬花魂 该用户已被删除
12#
 楼主| 发表于 2015-4-16 07:13:23 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
变相怪杰 该用户已被删除
13#
发表于 2015-4-21 13:23:17 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
飘灵儿 该用户已被删除
14#
发表于 2015-4-26 08:10:13 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
第二个灵魂 该用户已被删除
15#
发表于 2015-4-30 11:46:15 | 只看该作者
掌握asp的特性而且一定要知道为什么。
飘飘悠悠 该用户已被删除
16#
发表于 2015-7-17 11:40:50 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
小魔女 该用户已被删除
17#
发表于 2015-7-18 22:33:34 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
海妖 该用户已被删除
18#
发表于 2015-7-18 22:35:01 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
爱飞 该用户已被删除
19#
发表于 2015-7-21 13:06:53 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
活着的死人 该用户已被删除
20#
发表于 2015-10-11 05:33:34 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-26 04:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表