asp处理xml数据的发送接收类.docx

上传人:b****4 文档编号:3662462 上传时间:2022-11-24 格式:DOCX 页数:19 大小:19.73KB
下载 相关 举报
asp处理xml数据的发送接收类.docx_第1页
第1页 / 共19页
asp处理xml数据的发送接收类.docx_第2页
第2页 / 共19页
asp处理xml数据的发送接收类.docx_第3页
第3页 / 共19页
asp处理xml数据的发送接收类.docx_第4页
第4页 / 共19页
asp处理xml数据的发送接收类.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

asp处理xml数据的发送接收类.docx

《asp处理xml数据的发送接收类.docx》由会员分享,可在线阅读,更多相关《asp处理xml数据的发送接收类.docx(19页珍藏版)》请在冰豆网上搜索。

asp处理xml数据的发送接收类.docx

asp处理xml数据的发送接收类

属性

名称

类型

读写性

参数

说明

URL

String

只写

 

发送xml的接收地址

Message

String

只读

 

系统错误信息

XmlNode

String

只读

Str:

节点名称

获取发送包XML中节点的值

GetXmlData

XMLDom

只读

 

获取返回XML数据对象

方法:

名称

参数

返回值

说明

LoadXmlFromFile

Path:

xml路径

Void

从外部xml文件填充XmlDoc对象

LoadXmlFromString

Str:

xml字符串

Void

用字符串填充XmlDoc对象

NodeValue

NodeName节点名NodeText值NodeType保存类型[text=0,cdata=1]blnEncode是否编码[true,false]

Void

设置node的参数

SendHttpData

 

Void

发送xml包

PrintSendXmlData

 

Void

打印发送请求XML数据

PrintGetXmlData

 

Void

打印返回XML数据

SaveSendXmlDataToFile

 

Void

保存发送请求xml数据到文件,文件名为sendxml_日期.txt

SaveGetXmlDataToFile

 

Void

保存返回XML数据到文件,文件名为getxml_日期.txt

GetSingleNode

Nodestring:

节点名

String

获取返回xml的节点信息

AcceptHttpData

 

Void

接收XML包,错误信息通过Message对象获取

AcceptSingleNode

Nodestring:

节点名

String

返回接收XML包节点信息

PrintAcceptXmlData

 

Void

打印接收端接收到的XML数据

SaveAcceptXmlDataToFile

 

Void

保存接收的XML包数据到文件,文件名为acceptxml_日期.txt

SaveDebugStringToFile

Debugstr:

调试信息

Void

保存调试数据到文件,文件名为debugnote_日期.txt

本asp类可以用来处理xml包的发送与接收。

可用于各种异构系统之间API接口间通讯,以及处理WebService的调用与接收。

属性:

URL:

发送xml的接收地址

String

只写

Message:

系统错误信息

String

只读

XmlNode:

获取发送包XML中节点的值

String

只读

参数:

Str:

节点名称

GetXmlData:

获取返回XML数据对象

XMLDom

只读

方法:

LoadXmlFromFile:

从外部xml文件填充XmlDoc对象

参数Path:

xml路径

Void

LoadXmlFromString:

用字符串填充XmlDoc对象

参数Str:

xml字符串

Void

NodeValue设置node的参数

参数

NodeName节点名

NodeText值

NodeType保存类型[text=0,cdata=1]

blnEncode是否编码[true,false]

Void

SendHttpData:

发送xml包

PrintSendXmlData:

打印发送请求XML数据

PrintGetXmlData:

打印返回XML数据

SaveSendXmlDataToFile:

保存发送请求xml数据到文件,文件名为sendxml_日期.txt

SaveGetXmlDataToFile:

保存返回XML数据到文件,文件名为getxml_日期.txt

GetSingleNode:

获取返回xml的节点信息

参数Nodestring:

节点名

AcceptHttpData:

接收XML包,错误信息通过Message对象获取

AcceptSingleNode:

返回接收XML包节点信息

参数Nodestring:

节点名

PrintAcceptXmlData:

打印接收端接收到的XML数据

SaveAcceptXmlDataToFile:

保存接收的XML包数据到文件,文件名为acceptxml_日期.txt

SaveDebugStringToFile:

保存调试数据到文件,文件名为debugnote_日期.txt

参数Debugstr:

调试信息

代码:

xmlcls.asp

<%

Rem处理xml数据的发送、接收类

'--------------------------------------------------

'转载的时候请保留版权信息

'作者:

walkman

'公司:

步步为赢科技有限责任公司

'网址:

'版本:

ver1.0

'--------------------------------------------------

ClassXmlClass

Rem变量定义

PrivateXmlDoc,XmlHttp

PrivateMessageCode,SysKey,XmlPath

Privatem_GetXmlDoc,m_url

Privatem_XmlDocAccept

Rem初始化

PrivateSubClass_Initialize()

OnErrorResumeNext

MessageCode=""

XmlPath=""

SetXmlDoc=Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0")

XmlDoc.ASYNC=False

EndSub

Rem销毁对象

PrivateSubClass_Terminate()

IfIsObject(XmlDoc)ThenSetXmlDoc=Nothing

IfIsObject(m_XmlDocAccept)ThenSetm_XmlDocAccept=Nothing

IfIsObject(m_GetXmlDoc)ThenSetm_GetXmlDoc=Nothing

EndSub

'公共属性定义开始--------------------------

Rem错误信息

PublicPropertyGetMessage()

Message=MessageCode

EndProperty

Rem发送xml的地址

PublicPropertyLetURL(str)

m_url=str

EndProperty

'公共属性定义结束--------------------------

'私有过程、方法开始--------------------------

Rem加载xml

PrivateSubLoadXmlData()

IfXmlPath<>""Then

IfNotXmlDoc.Load(XmlPath)Then

XmlDoc.LoadXml"

xmlversion=""1.0""encoding=""gb2312""?

>"

EndIf

Else

XmlDoc.LoadXml"

xmlversion=""1.0""encoding=""gb2312""?

>"

EndIf

EndSub

Rem字符转化

PrivateFunctionAnsiToUnicode(ByValstr)

Dimi,j,c,i1,i2,u,fs,f,p

AnsiToUnicode=""

p=""

Fori=1ToLen(str)

c=Mid(str,i,1)

j=AscW(c)

Ifj<0Then

j=j+65536

EndIf

Ifj>=0Andj<=128Then

Ifp="c"Then

AnsiToUnicode=""&AnsiToUnicode

p="e"

EndIf

AnsiToUnicode=AnsiToUnicode&c

Else

Ifp="e"Then

AnsiToUnicode=AnsiToUnicode&""

p="c"

EndIf

AnsiToUnicode=AnsiToUnicode&("&#"&j&";")

EndIf

Next

EndFunction

Rem字符转化

PrivateFunctionstrAnsi2Unicode(asContents)

Dimlen1,i,varchar,varasc

strAnsi2Unicode=""

len1=LenB(asContents)

Iflen1=0ThenExitFunction

Fori=1tolen1

varchar=MidB(asContents,i,1)

varasc=AscB(varchar)

Ifvarasc>127Then

IfMidB(asContents,i+1,1)<>""Then

strAnsi2Unicode=strAnsi2Unicode&chr(ascw(midb(asContents,i+1,1)&varchar))

EndIf

i=i+1

Else

strAnsi2Unicode=strAnsi2Unicode&Chr(varasc)

EndIf

Next

EndFunction

Rem往文件中追加字符

PrivateSubWriteStringToFile(filename,str)

OnErrorResumeNext

Dimfs,ts

Setfs=createobject("script_ing.filesystemobject")

IfNotIsObject(fs)ThenExitSub

Setts=fs.OpenTextFile(Server.MapPath(filename),8,True)

ts.writeline(str)

ts.close

Setts=Nothing

Setfs=Nothing

EndSub

'私有过程、方法结束--------------------------

'公共方法开始--------------------------

'''''''''''发送xml部分开始

Rem从外部xml文件填充XmlDoc对象

PublicSubLoadXmlFromFile(path)

XmlPath=Server.MapPath(path)

LoadXmlData()

EndSub

Rem用字符串填充XmlDoc对象

PublicSubLoadXmlFromString(str)

XmlDoc.LoadXmlstr

EndSub

Rem设置node的参数如NodeValue"appID",AppID,1,False

'--------------------------------------------------

'参数:

'NodeName节点名

'NodeText值

'NodeType保存类型[text=0,cdata=1]

'blnEncode是否编码[true,false]

'--------------------------------------------------

PublicSubNodeValue(ByvalNodeName,ByvalNodeText,ByvalNodeType,ByvalblnEncode)

DimChildNode,CreateCDATASection

NodeName=Lcase(NodeName)

IfXmlDoc.documentElement.selectSingleNode(NodeName)isnothingThen

SetChildNode=XmlDoc.documentElement.appendChild(XmlDoc.createNode(1,NodeName,""))

Else

SetChildNode=XmlDoc.documentElement.selectSingleNode(NodeName)

EndIf

IfblnEncode=TrueThen

NodeText=AnsiToUnicode(NodeText)

EndIf

IfNodeType=1Then

ChildNode.Text=""

SetCreateCDATASection=XmlDoc.createCDATASection(Replace(NodeText,"]]>","]]>"))

ChildNode.appendChild(createCDATASection)

Else

ChildNode.Text=NodeText

EndIf

EndSub

'--------------------------------------------------

'获取发送包XML中节点的值

'参数:

'Str节点名

'--------------------------------------------------

PublicPropertyGetXmlNode(ByvalStr)

IfXmlDoc.documentElement.selectSingleNode(Str)isNothingThen

XmlNode="Null"

Else

XmlNode=XmlDoc.documentElement.selectSingleNode(Str).text

EndIf

EndProperty

'--------------------------------------------------

'获取返回XML数据对象

'例:

'当GetXmlData不为NULL时,GetXmlData为XML对象

'--------------------------------------------------

PublicPropertyGetGetXmlData()

SetGetXmlData=m_GetXmlDoc

EndProperty

'--------------------------------------------------

'发送xml包

'--------------------------------------------------

PublicSubSendHttpData()

Dimi,GetXmlDoc,LoadAppid

SetXmlhttp=Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")

SetGetXmlDoc=Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0")'返回xml包

XmlHttp.Open"POST",m_url,false

XmlHttp.SetRequestHeader"content-type","text/xml"

XmlHttp.SendXmlDoc

'Response.WritestrAnsi2Unicode(xmlhttp.responseBody)

IfGetXmlDoc.load(XmlHttp.responseXML)Then

Setm_GetXmlDoc=GetXmlDoc

Else

MessageCode="请求数据错误!

"

ExitSub

EndIf

SetGetXmlDoc=Nothing

SetXmlHttp=Nothing

EndSub

'--------------------------------------------------

'打印发送请求XML数据

'--------------------------------------------------

PublicSubPrintSendXmlData()

Response.Clear

Response.ContentType="text/xml"

Response.CharSet="gb2312"

Response.Expires=0

Response.Write"

xmlversion=""1.0""encoding=""gb2312""?

>"&vbNewLine

Response.WriteXmlDoc.documentElement.XML

EndSub

'--------------------------------------------------

'打印返回XML数据

'--------------------------------------------------

PublicSubPrintGetXmlData()

Response.Clear

Response.ContentType="text/xml"

Response.CharSet="gb2312"

Response.Expires=0

IfIsObject(m_GetXmlDoc)Then

Response.Write"

xmlversion=""1.0""encoding=""gb2312""?

>"&vbNewLine

Response.Writem_GetXmlDoc.documentElement.XML

Else

Response.Write"

xmlversion=""1.0""encoding=""gb2312""?

>"

EndIf

EndSub

Rem保存发送请求xml数据到文件,文件名为sendxml_日期.txt

PublicSubSaveSendXmlDataToFile()

Dimfilename,str

filename="sendxml_"&DateValue(now)&".txt"

str=""

str=str&""&Now()&vbNewLine

str=str&"---------------------------------------------"&vbNewLine

str=str&"

xmlversion=""1.0""encoding=""gb2312""?

>"&vbNewLine

str=str&XmlDoc.documentElement.XML&vbNewLine

str=str&"---------------------------------------------"&vbNewLine

str=str&vbNewLine&vbNewLine&vbNewLine

WriteStringToFilefilename,str

EndSub

Rem保存返回XML数据到文件,文件名为getxml_日期.txt

PublicSubSaveGetXmlDataToFile()

Dimfilename,str

filename="getxml_"&DateValue(now)&".txt"

str=""

str=str&""&Now()&vbNewLine

str=str&"---------------------------------------------"&vbNewLine

IfIsObject(m_GetXmlDoc)Then

str=str&"

xmlversion=""1.0""encoding=""gb2312""?

>"&vbNewLine

str=str&m_GetXmlDoc.documentElement.XML

Else

str=str&"

xmlversion=""1.0""encoding=""gb2312""?

>"&vbNewLine&""&vbNewLine&""

EndIf

str=str&vbNewLine

str=str&"---------------------------------------------"&vbNewLine

str=str&vbNewLine&vbNewLine&vbNewLine

WriteStringToFilefilename,str

EndSub

'--------------------------------------------------

'获取返回xml的节点信息

'XmlClassObj.GetSingleNode("//msg")

'--------------------------------------------------

PublicFunctionGetSingleNode(nodestring)

IfIsObject(m_GetXmlDoc)Then

GetSingleNode=m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text

Else

GetSingleNode=""

EndIf

EndFunction

''''''''''''''''''发送xml部分结束

''''''''''''''''''接收xml部分开始

'--------------------------------------------------

'接收XML包,错误信息通过Message对象获取

'--------------------------------------------------

PublicFunctionAcceptHttpData()

D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1