ASP网页编程之实例练习训练ASP+XML编程(3)
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。4、操纵Xml数据的Cls_Person类申明(clsPerson.asp)Cls_Person类用来完成与接洽人信息相干的各类操纵,包含增加、修正和删除等等,它利用VBScript编写。Cls_Person包含Id、Name、Nick、Mobile、Tel、Email、QQ和Company属性,对应于XML文件中的Person节点。Cls_Person包含GetInfoFromXml、AddToXml、EditToXml和DeleteFormXml四个次要办法,分离完成猎取信息,增加信息,修正信息和删除信息四个功效。
Cls_Person的详细完成以下,
***************************************************
申明:Person类
gwd2002-11-06
援用:pub/constpub.asp
***************************************************
ClassCls_Person
Privatem_intIdId,对应Person节点在Persons汇合中的地位
Privatem_strName姓名
Privatem_strNick英文名
Privatem_strMobile手机
Privatem_strTel德律风
Privatem_strEmail电子邮件
Privatem_strQQQQ号
Privatem_strCompany地点公司
Privatem_strError堕落信息
类初始化
PrivateSubClass_Initialize()
m_strError=""
m_intId=-1
EndSub
类开释
PrivateSubClass_Terminate()
m_strError=""
EndSub
-----读写各个属性---------------------------
PublicPropertyGetId
Id=m_intId
EndProperty
PublicPropertyLetId(intId)
m_intId=intId
EndProperty
PublicPropertyGetName
Name=m_strName
EndProperty
PublicPropertyLetName(strName)
m_strName=strName
EndProperty
PublicPropertyGetNick
Nick=m_strNick
EndProperty
PublicPropertyLetNick(strNick)
m_strNick=strNick
EndProperty
PublicPropertyGetMobile
Mobile=m_strMobile
EndProperty
PublicPropertyLetMobile(strMobile)
m_strMobile=strMobile
EndProperty
PublicPropertyGetTel
Tel=m_strTel
EndProperty
PublicPropertyLetTel(strTel)
m_strTel=strTel
EndProperty
PublicPropertyGetEmail
Email=m_strEmail
EndProperty
PublicPropertyLetEmail(strEmail)
m_strEmail=strEmail
EndProperty
PublicPropertyGetQQ
QQ=m_strQQ
EndProperty
PublicPropertyLetQQ(strQQ)
m_strQQ=strQQ
EndProperty
PublicPropertyGetCompany
Company=m_strCompany
EndProperty
PublicPropertyLetCompany(strCompany)
m_strCompany=strCompany
EndProperty
-----------------------------------------------
猎取毛病信息
PublicFunctionGetLastError()
GetLastError=m_strError
EndFunction
公有办法,增加毛病信息
PrivateSubAddErr(strEcho)
m_strError=m_strError+"<DivCLASS=""alert"">"&strEcho&"</Div>"
EndSub
扫除毛病信息
PublicFunctionClearError()
m_strError=""
EndFunction
从Xml中读取指定节点的数据,并添补各个属性
必要起首设置Id
PublicFunctionGetInfoFromXml(objXmlDoc)
DimobjNodeList
DimI
ClearError
IfobjXmlDocIsNothingThen
GetInfoFromXml=False
AddErr"Dom工具为空值"
ExitFunction
EndIf
IfCStr(m_intId)="-1"Then
GetInfoFromXml=False
AddErr"未准确设置接洽人工具的ID属性"
ExitFunction
Else
I=m_intId-1要读获得节点地位
EndIf
选择并读取节点信息,付与各个属性
SetobjNodeList=objXmlDoc.getElementsByTagName("Person")
IfobjNodeList.length-m_intId>=0Then
OnErrorResumeNext
m_strName=objNodeList(I).selectSingleNode("Name").Text
m_strNick=objNodeList(I).selectSingleNode("Nick").Text
m_strMobile=objNodeList(I).selectSingleNode("Mobile").Text
m_strTel=objNodeList(I).selectSingleNode("Tel").Text
m_strEmail=objNodeList(I).selectSingleNode("Email").Text
m_strQQ=objNodeList(I).selectSingleNode("QQ").Text
m_strCompany=objNodeList(I).selectSingleNode("Company").Text
GetInfoFromXml=True
Else
GetInfoFromXml=False
AddErr"猎取接洽信息产生毛病"
SetobjNodeList=Nothing
ExitFunction
EndIf
SetobjNodeList=Nothing
EndFunction
增加信息到XML文件中
必要起首设置好要添补的属性
PublicFunctionAddToXml(objXmlDoc)
DimobjPerson,objNode
ClearError
IfobjXmlDocIsNothingThen
AddToXml=False
AddErr"Dom工具为空值"
ExitFunction
EndIf
创立Person节点
SetobjPerson=objXmlDoc.createElement("Person")
objXmlDoc.documentElement.appendChildobjPerson
创立各个子节点
-----------------------------------------------------
SetobjNode=objXmlDoc.createElement("Name")
objNode.Text=m_strName
objPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Nick")
objNode.Text=m_strNick
objPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Mobile")
objNode.Text=m_strMobile
objPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Tel")
objNode.Text=m_strTel
objPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Email")
objNode.Text=m_strEmail
objPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("QQ")
objNode.Text=m_strQQ
objPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Company")
objNode.Text=m_strCompany
objPerson.appendChildobjNode
-----------------------------------------------------
SetobjNode=Nothing
SetobjPerson=Nothing
OnErrorResumeNext
objXmlDoc.saveServer.MapPath(C_XMLFILE)保留XML文件
IfErr.Number=0Then
AddToXml=True
Else
AddToXml=False
AddErrErr.Description
EndIf
EndFunction
从XML文件中删除数据
必要起首设置Id
PublicFunctionDeleteFromXml(objXmlDoc)
DimobjNodeList,objNode
ClearError
IfobjXmlDocIsNothingThen
DeleteFromXml=False
AddErr"Dom工具为空值"
ExitFunction
EndIf
IfCStr(m_intId)="-1"Then
DeleteFromXml=False
AddErr"未准确设置接洽人工具的ID属性"
ExitFunction
EndIf
SetobjNodeList=objXmlDoc.getElementsByTagName("Person")
IfobjNodeList.length-m_intId<0Then
DeleteFromXml=False
AddErr"未找到响应的接洽人"
SetobjNodeList=Nothing
ExitFunction
EndIf
OnErrorResumeNext
SetobjNode=objXmlDoc.documentElement.removeChild(objNodeList(intId-1))
IfobjNodeIsNothingThen
DeleteFromXml=False
AddErr"删除接洽人失利"
SetobjNodeList=Nothing
ExitFunction
Else
objXmlDoc.saveServer.MapPath(C_XMLFILE)
EndIf
SetobjNode=Nothing
SetobjNodeList=Nothing
IfErr.Number=0Then
DeleteFromXml=True
Else
DeleteFromXml=False
AddErrErr.Description
EndIf
EndFunction
修正XML文件中的数据
必要起首设置好Id
PublicFunctionEditToXml(objXmlDoc)
DimobjPersonList,objOldPerson,objNewPerson,objNode
ClearError
IfobjXmlDocIsNothingThen
EditToXml=False
AddErr"Dom工具为空值"
ExitFunction
EndIf
IfCStr(m_intId)="-1"Then
EditToXml=False
AddErr"未准确设置接洽人工具的ID属性"
ExitFunction
EndIf
SetobjPersonList=objXmlDoc.getElementsByTagName("Person")
IfobjPersonList.length-m_intId<0Then
DeleteFromXml=False
AddErr"未找到响应的接洽人"
SetobjPersonList=Nothing
ExitFunction
EndIf
SetobjOldPerson=objPersonList(m_intId-1)要修正的旧节点
SetobjNewPerson=objXmlDoc.createElement("Person")用来交换旧节点的新节点
SetobjNode=objXmlDoc.createElement("Name")
objNode.Text=m_strName
objNewPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Nick")
objNode.Text=m_strNick
objNewPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Mobile")
objNode.Text=m_strMobile
objNewPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Tel")
objNode.Text=m_strTel
objNewPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Email")
objNode.Text=m_strEmail
objNewPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("QQ")
objNode.Text=m_strQQ
objNewPerson.appendChildobjNode
SetobjNode=objXmlDoc.createElement("Company")
objNode.Text=m_strCompany
objNewPerson.appendChildobjNode
OnErrorResumeNext
举行交换
SetobjNode=objXmlDoc.documentElement.replaceChild(objNewPerson,objOldPerson)
IfobjNodeIsNothingThen
EditToXml=False
AddErr"修正接洽人失利"
SetobjOldPerosn=Nothing
SetobjNewPerson=Nothing
SetobjPersonList=Nothing
ExitFunction
Else
objXmlDoc.saveServer.MapPath(C_XMLFILE)
EndIf
SetobjOldPerson=Nothing
SetobjNewPerson=Nothing
SetobjPersonList=Nothing
IfErr.Number=0Then
EditToXml=True
Else
EditToXml=False
AddErrErr.Description
EndIf
EndFunction
EndClass
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
页:
[1]