asp处理xml数据的发送接收类Word文档下载推荐.docx
《asp处理xml数据的发送接收类Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《asp处理xml数据的发送接收类Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
NodeValue
NodeName节点名NodeText值NodeType保存类型[text=0,cdata=1]blnEncode是否编码[true,false]
设置node的参数
SendHttpData
发送xml包
PrintSendXmlData
打印发送请求XML数据
PrintGetXmlData
打印返回XML数据
SaveSendXmlDataToFile
保存发送请求xml数据到文件,文件名为sendxml_日期.txt
SaveGetXmlDataToFile
保存返回XML数据到文件,文件名为getxml_日期.txt
GetSingleNode
Nodestring:
节点名
获取返回xml的节点信息
AcceptHttpData
接收XML包,错误信息通过Message对象获取
AcceptSingleNode
返回接收XML包节点信息
PrintAcceptXmlData
打印接收端接收到的XML数据
SaveAcceptXmlDataToFile
保存接收的XML包数据到文件,文件名为acceptxml_日期.txt
SaveDebugStringToFile
Debugstr:
调试信息
保存调试数据到文件,文件名为debugnote_日期.txt
本asp类可以用来处理xml包的发送与接收。
可用于各种异构系统之间API接口间通讯,以及处理WebService的调用与接收。
属性:
URL:
发送xml的接收地址
Message:
系统错误信息
XmlNode:
参数:
GetXmlData:
获取返回XML数据对象
LoadXmlFromFile:
从外部xml文件填充XmlDoc对象
参数Path:
LoadXmlFromString:
用字符串填充XmlDoc对象
参数Str:
NodeValue设置node的参数
NodeName节点名
NodeText值
NodeType保存类型[text=0,cdata=1]
blnEncode是否编码[true,false]
SendHttpData:
发送xml包
PrintSendXmlData:
打印发送请求XML数据
PrintGetXmlData:
打印返回XML数据
SaveSendXmlDataToFile:
保存发送请求xml数据到文件,文件名为sendxml_日期.txt
SaveGetXmlDataToFile:
保存返回XML数据到文件,文件名为getxml_日期.txt
GetSingleNode:
获取返回xml的节点信息
参数Nodestring:
AcceptHttpData:
接收XML包,错误信息通过Message对象获取
AcceptSingleNode:
返回接收XML包节点信息
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
公共属性定义开始--------------------------
Rem错误信息
PublicPropertyGetMessage()
Message=MessageCode
EndProperty
Rem发送xml的地址
PublicPropertyLetURL(str)
m_url=str
公共属性定义结束--------------------------
私有过程、方法开始--------------------------
Rem加载xml
PrivateSubLoadXmlData()
IfXmlPath<
>
"
Then
IfNotXmlDoc.Load(XmlPath)Then
XmlDoc.LoadXml"
?
xmlversion="
1.0"
encoding="
gb2312"
root/>
EndIf
Else
EndIf
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
Ifj>
=0Andj<
=128Then
Ifp="
c"
Then
&
AnsiToUnicode
e"
AnsiToUnicode=AnsiToUnicode&
c
("
&
#"
j&
;
Next
EndFunction
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)<
strAnsi2Unicode=strAnsi2Unicode&
chr(ascw(midb(asContents,i+1,1)&
varchar))
i=i+1
Chr(varasc)
Rem往文件中追加字符
PrivateSubWriteStringToFile(filename,str)
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()
Rem用字符串填充XmlDoc对象
PublicSubLoadXmlFromString(str)
XmlDoc.LoadXmlstr
Rem设置node的参数如NodeValue"
appID"
AppID,1,False
参数:
PublicSubNodeValue(ByvalNodeName,ByvalNodeText,ByvalNodeType,ByvalblnEncode)
DimChildNode,CreateCDATASection
NodeName=Lcase(NodeName)
IfXmlDoc.documentElement.selectSingleNode(NodeName)isnothingThen
SetChildNode=XmlDoc.documentElement.appendChild(XmlDoc.createNode(1,NodeName,"
))
SetChildNode=XmlDoc.documentElement.selectSingleNode(NodeName)
IfblnEncode=TrueThen
NodeText=AnsiToUnicode(NodeText)
IfNodeType=1Then
ChildNode.Text="
SetCreateCDATASection=XmlDoc.createCDATASection(Replace(NodeText,"
]]>
"
]]&
gt;
ChildNode.appendChild(createCDATASection)
ChildNode.Text=NodeText
Str节点名
PublicPropertyGetXmlNode(ByvalStr)
IfXmlDoc.documentElement.selectSingleNode(Str)isNothingThen
XmlNode="
Null"
XmlNode=XmlDoc.documentElement.selectSingleNode(Str).text
例:
当GetXmlData不为NULL时,GetXmlData为XML对象
PublicPropertyGetGetXmlData()
SetGetXmlData=m_GetXmlDoc
发送xml包
PublicSubSendHttpData()
Dimi,GetXmlDoc,LoadAppid
SetXmlhttp=Server.CreateObject("
MSXML2.ServerXMLHTTP.3.0"
SetGetXmlDoc=Server.CreateObject("
)'
返回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
请求数据错误!
ExitSub
SetGetXmlDoc=Nothing
SetXmlHttp=Nothing
PublicSubPrintSendXmlData()
Response.Clear
Response.ContentType="
Response.CharSet="
Response.Expires=0
Response.Write"
vbNewLine
Response.WriteXmlDoc.documentElement.XML
PublicSubPrintGetXmlData()
IfIsObject(m_GetXmlDoc)Then
Response.Writem_GetXmlDoc.documentElement.XML
root>
/root>
Rem保存发送请求xml数据到文件,文件名为sendxml_日期.txt
PublicSubSaveSendXmlDataToFile()
Dimfilename,str
filename="
sendxml_"
DateValue(now)&
.txt"
str="
str=str&
Now()&
vbNewLine
---------------------------------------------"
XmlDoc.documentElement.XML&
vbNewLine&
WriteStringToFilefilename,str
Rem保存返回XML数据到文件,文件名为getxml_日期.txt
PublicSubSaveGetXmlDataToFile()
getxml_"
m_GetXmlDoc.documentElement.XML
XmlClassObj.GetSingleNode("
//msg"
PublicFunctionGetSingleNode(nodestring)
GetSingleNode=m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text
GetSingleNode="
EndFunction
发送xml部分结束
接收xml部分开始
PublicFunctionAcceptHttpData()
D