1、asp处理xml数据的发送接收类属性名称类型读写性参数说明URLString只写发送xml的接收地址MessageString只读系统错误信息XmlNodeString只读Str:节点名称获取发送包XML中节点的值GetXmlDataXMLDom只读获取返回XML数据对象方法: 名称参数返回值说明LoadXmlFromFilePath:xml路径Void从外部xml文件填充XmlDoc对象LoadXmlFromStringStr:xml字符串Void用字符串填充XmlDoc对象NodeValueNodeName 节点名 NodeText 值 NodeType 保存类型 text=0,cdata
2、=1 blnEncode 是否编码 true,falseVoid设置node的参数SendHttpDataVoid发送xml包PrintSendXmlDataVoid打印发送请求XML数据PrintGetXmlDataVoid打印返回XML数据SaveSendXmlDataToFileVoid保存发送请求xml数据到文件,文件名为sendxml_日期.txtSaveGetXmlDataToFileVoid保存返回XML数据到文件,文件名为getxml_日期.txtGetSingleNodeNodestring:节点名String获取返回xml的节点信息AcceptHttpDataVoid接收X
3、ML包,错误信息通过Message对象获取AcceptSingleNodeNodestring:节点名String返回接收XML包节点信息PrintAcceptXmlDataVoid打印接收端接收到的XML数据SaveAcceptXmlDataToFileVoid保存接收的XML包数据到文件,文件名为acceptxml_日期.txtSaveDebugStringToFileDebugstr:调试信息Void保存调试数据到文件,文件名为debugnote_日期.txt本asp类可以用来处理xml包的发送与接收。可用于各种异构系统之间API接口间通讯,以及处理Web Service的调用与接收。属
4、性:URL : 发送xml的接收地址String只写Message : 系统错误信息String只读XmlNode:获取发送包XML中节点的值String只读参数:Str:节点名称GetXmlData: 获取返回XML数据对象XMLDom只读方法:LoadXmlFromFile : 从外部xml文件填充XmlDoc对象参数 Path:xml路径VoidLoadXmlFromString : 用字符串填充XmlDoc对象参数 Str:xml字符串VoidNodeValue 设置node的参数 参数NodeName 节点名NodeText 值NodeType 保存类型 text=0,cdata=1
5、 blnEncode 是否编码 true,falseVoidSendHttpData : 发送xml包PrintSendXmlData : 打印发送请求XML数据PrintGetXmlData : 打印返回XML数据SaveSendXmlDataToFile : 保存发送请求xml数据到文件,文件名为sendxml_日期.txt SaveGetXmlDataToFile : 保存返回XML数据到文件,文件名为getxml_日期.txtGetSingleNode : 获取返回xml的节点信息参数 Nodestring:节点名AcceptHttpData : 接收XML包,错误信息通过Messag
6、e对象获取AcceptSingleNode: 返回接收XML包节点信息参数 Nodestring:节点名PrintAcceptXmlData : 打印接收端接收到的XML数据SaveAcceptXmlDataToFile : 保存接收的XML包数据到文件,文件名为acceptxml_日期.txtSaveDebugStringToFile : 保存调试数据到文件,文件名为debugnote_日期.txt参数 Debugstr:调试信息 代码:xmlcls.asp%Rem 处理xml数据的发送、接收类-转载的时候请保留版权信息作者:walkman公司:步步为赢科技有限责任公司网址:版本:ver1.
7、0-Class XmlClassRem 变量定义Private XmlDoc,XmlHttpPrivate MessageCode,SysKey,XmlPathPrivate m_GetXmlDoc,m_urlPrivate m_XmlDocAcceptRem 初始化 Private Sub Class_Initialize() On Error Resume Next MessageCode = XmlPath = Set XmlDoc = Server.CreateObject(msxml2.FreeThreadedDOMDocument.3.0) XmlDoc.ASYNC = False
8、End SubRem 销毁对象Private Sub Class_Terminate() If IsObject(XmlDoc) Then Set XmlDoc = Nothing If IsObject(m_XmlDocAccept) Then Set m_XmlDocAccept = Nothing If IsObject(m_GetXmlDoc) Then Set m_GetXmlDoc = Nothing End Sub 公共属性定义开始-Rem 错误信息Public Property Get Message() Message = MessageCodeEnd PropertyRem
9、 发送xml的地址Public Property Let URL(str) m_url = str End Property公共属性定义结束- 私有过程、方法开始- Rem 加载xmlPrivate Sub LoadXmlData() If XmlPath Then If Not XmlDoc.Load(XmlPath) Then XmlDoc.LoadXml End If Else XmlDoc.LoadXml End If End SubRem 字符转化Private Function AnsiToUnicode(ByVal str) Dim i, j, c, i1, i2, u, fs,
10、 f, p AnsiToUnicode = p = For i = 1 To Len(str) c = Mid(str, i, 1) j = AscW(c) If j = 0 And j 127 Then If MidB(asContents,i+1,1) Then strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar) End If i=i+1 Else strAnsi2Unicode = strAnsi2Unicode & Chr(varasc) End If NextEnd Functi
11、onRem 往文件中追加字符Private Sub WriteStringToFile(filename,str) On Error Resume Next Dim fs,ts Set fs= createobject(script_ing.filesystemobject) If Not IsObject(fs) Then Exit Sub Set ts=fs.OpenTextFile(Server.MapPath(filename),8,True) ts.writeline(str) ts.close Set ts=Nothing Set fs=NothingEnd Sub 私有过程、方法
12、结束- 公共方法开始-发送xml部分开始Rem 从外部xml文件填充XmlDoc对象Public Sub LoadXmlFromFile(path) XmlPath = Server.MapPath(path) LoadXmlData()End Sub Rem 用字符串填充XmlDoc对象Public Sub LoadXmlFromString(str) XmlDoc.LoadXml strEnd Sub Rem 设置node的参数 如 NodeValue appID,AppID,1,False-参数 :NodeName 节点名NodeText 值NodeType 保存类型 text=0,cd
13、ata=1 blnEncode 是否编码 true,false-Public Sub NodeValue(Byval NodeName,Byval NodeText,Byval NodeType ,Byval blnEncode) Dim ChildNode,CreateCDATASection NodeName = Lcase(NodeName) If XmlDoc.documentElement.selectSingleNode(NodeName) is nothing Then Set ChildNode = XmlDoc.documentElement.appendChild(XmlD
14、oc.createNode(1,NodeName,) Else Set ChildNode = XmlDoc.documentElement.selectSingleNode(NodeName) End If If blnEncode = True Then NodeText = AnsiToUnicode(NodeText) End If If NodeType = 1 Then ChildNode.Text = Set CreateCDATASection = XmlDoc.createCDATASection(Replace(NodeText,>) ChildNode.append
15、Child(createCDATASection) Else ChildNode.Text = NodeText End IfEnd Sub-获取发送包XML中节点的值参数 :Str 节点名-Public Property Get XmlNode(Byval Str) If XmlDoc.documentElement.selectSingleNode(Str) is Nothing Then XmlNode = Null Else XmlNode = XmlDoc.documentElement.selectSingleNode(Str).text End IfEnd Property-获取
16、返回XML数据对象例:当GetXmlData不为NULL时,GetXmlData为XML对象-Public Property Get GetXmlData() Set GetXmlData = m_GetXmlDocEnd Property-发送xml包 -Public Sub SendHttpData() Dim i,GetXmlDoc,LoadAppid Set Xmlhttp = Server.CreateObject(MSXML2.ServerXMLHTTP.3.0) Set GetXmlDoc = Server.CreateObject(msxml2.FreeThreadedDOMD
17、ocument.3.0) 返回xml包 XmlHttp.Open POST, m_url, false XmlHttp.SetRequestHeader content-type, text/xml XmlHttp.Send XmlDoc Response.Write strAnsi2Unicode(xmlhttp.responseBody) If GetXmlDoc.load(XmlHttp.responseXML) Then Set m_GetXmlDoc = GetXmlDoc Else MessageCode = 请求数据错误! Exit Sub End If Set GetXmlDo
18、c = Nothing Set XmlHttp = NothingEnd Sub-打印发送请求XML数据-Public Sub PrintSendXmlData() Response.Clear Response.ContentType = text/xml Response.CharSet = gb2312 Response.Expires = 0 Response.Write &vbNewLine Response.Write XmlDoc.documentElement.XMLEnd Sub-打印返回XML数据-Public Sub PrintGetXmlData() Response.
19、Clear Response.ContentType = text/xml Response.CharSet = gb2312 Response.Expires = 0 If IsObject(m_GetXmlDoc) Then Response.Write &vbNewLine Response.Write m_GetXmlDoc.documentElement.XML Else Response.Write End If End SubRem 保存发送请求xml数据到文件,文件名为sendxml_日期.txtPublic Sub SaveSendXmlDataToFile() Dim fi
20、lename,str filename = sendxml_ & DateValue(now) & .txt str = str = str & & Now() & vbNewLine str = str & -& vbNewLine str = str & & vbNewLine str = str & XmlDoc.documentElement.XML & vbNewLine str = str & -& vbNewLine str = str & vbNewLine & vbNewLine & vbNewLine WriteStringToFile filename,strEnd Su
21、bRem 保存返回XML数据到文件,文件名为getxml_日期.txtPublic Sub SaveGetXmlDataToFile() Dim filename,str filename = getxml_ & DateValue(now) & .txt str = str = str & & Now() & vbNewLine str = str & -& vbNewLine If IsObject(m_GetXmlDoc) Then str = str & & vbNewLine str = str & m_GetXmlDoc.documentElement.XML Else str =
22、 str & & vbNewLine & & vbNewLine & End If str = str & vbNewLine str = str & -& vbNewLine str = str & vbNewLine & vbNewLine & vbNewLine WriteStringToFile filename,strEnd Sub -获取返回xml的节点信息XmlClassObj.GetSingleNode(/msg)-Public Function GetSingleNode(nodestring) If IsObject(m_GetXmlDoc) Then GetSingleNode = m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text Else GetSingleNode = End If End Function 发送xml部分结束接收xml部分开始-接收XML包,错误信息通过Message对象获取-Public Function AcceptHttpData() D
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1