• ASP XML处理&接口调用


    <%@ Language=VBScript %>
    
    <%
    Option Explicit
    
    Class cTest
        dim str
            'str="print success!"
        sub print()
            'dim str
            str="print success!"
            response.Write (str)
        End sub
    End Class
    
    sub submitTest()
        response.write("URL="&Request.ServerVariables("URL")&"</br>")
        response.write("QUERY_STRING="&Request.ServerVariables("QUERY_STRING")&"</br>")
        response.write("<form NAME='form' ACTION='ErrTest.asp' METHOD='get'>")
        response.write("<input type='hidden'name='hid' value='test'>")
        response.write("<input type='submit'name='btn' value='按钮提交'>")
        response.write("</form>")
    end sub
    
    Function SendSoaRequest(xmlResponse,requestType)
    	dim returnValue,obj,ResponseInfo
    	set obj = new Cls_SOA_Service
    	with obj
    		'.UserId="110254"
    		.UserId="Customer.WSUser"  '!
    		.RequestType = requestType
    		.requestXML = xmlResponse
    		If .Request then
    			returnValue = .ObjXmlDoc.text
    		else
    			returnValue = ""
    		end if
    	end with
    	 SendSoaRequest = returnValue
    End Function
    
    function getSOA()
        dim requestType,xmlResponse,xmlRequest,strXML,res
    
        requestType = "Customer.User.Service.GetAllianceInfoFromSession"
        xmlRequest=          "<GetAllianceInfoFromSessionRequest>"
        xmlRequest = xmlRequest &   "<Session>_zh_baidu</Session>"
        xmlRequest = xmlRequest &   "<AllianceID>1</AllianceID>"
        xmlRequest = xmlRequest &   "<SmartLinkHost>http://www.sina.com.cn</SmartLinkHost>"
        xmlRequest = xmlRequest &"</GetAllianceInfoFromSessionRequest>"
        
        '调用soa接口
        xmlResponse = SendSoaRequest(xmlRequest,requestType)
        response.Write (xmlResponse&"</br>")
    
      '--
      'xmlResponse =              "<Response>"
      'xmlResponse = xmlResponse &"<Header ShouldRecordPerformanceTime=""false"" UserID=""480106"" RequestID=""8d65038a-dd5b-47e6-8e31-4f9e176f761d"" ResultCode=""Success"" ServerIP=""192.168.81.72"" />"
      'xmlResponse = xmlResponse &"  <GetAllianceInfoFromSessionResponse>"
      'xmlResponse = xmlResponse &"    <ProcessFlag>T</ProcessFlag>"
      'xmlResponse = xmlResponse &"    <AllianceID>1</AllianceID>"
      'xmlResponse = xmlResponse &"    <SID>449</SID>"
      'xmlResponse = xmlResponse &"    <Ouid />"
      'xmlResponse = xmlResponse &"    <Session>U449</Session>"
      'xmlResponse = xmlResponse &"  </GetAllianceInfoFromSessionResponse>"
      'xmlResponse = xmlResponse &"</Response>"
      
      'XML处理
      res= CreateXML(xmlResponse)
    End function
    
    
    '=调用==============
    Dim iRetCode,iAlliance_RVPID_Out,iAlliance_RVPID_in
    Dim sEid,iAllianceID,dtDataChange_lastTime,sEidName
    
    'Form提交测试
    'call submitTest()
    
    'SOA测试
    'call getSOA()
    
    '类测试(作用域)
    'dim obj
    'set obj =new cTest
    'call obj.print()
    
    '-------------------------------------------------------------------------
    'XML解析 遍历测试!
    dim strXML
    strXML=""
    strXML=strXML & "<bookstore>"
    strXML=strXML & "  <book category=""children"">"
    strXML=strXML & "    <title lang=""en"">Harry Potter</title>"
    strXML=strXML & "    <author>J K. Rowling</author>"
    strXML=strXML & "    <year>2005</year>"
    strXML=strXML & "    <price>29.99</price>"
    strXML=strXML & "  </book>"
    strXML=strXML & "  <book category=""cooking"">"
    strXML=strXML & "    <title lang=""en"">Everyday Italian</title>"
    strXML=strXML & "    <author>Giada De Laurentiis</author>"
    strXML=strXML & "    <year>2005</year>"
    strXML=strXML & "    <price>30.00</price>"
    strXML=strXML & "  </book>"
    strXML=strXML & "  <book category=""web"" cover=""paperback"">"
    strXML=strXML & "    <title lang=""en"">Learning XML</title>"
    strXML=strXML & "    <author>Erik T. Ray</author>"
    strXML=strXML & "    <year>2003</year>"
    strXML=strXML & "    <price>39.95</price>"
    strXML=strXML & "  </book>"
    strXML=strXML & "  <book category=""web"">"
    strXML=strXML & "    <title lang=""en"">XQuery Kick Start</title>"
    strXML=strXML & "    <author>James McGovern</author>"
    strXML=strXML & "    <author>Per Bothner</author>"
    strXML=strXML & "    <author>Kurt Cagle</author>"
    strXML=strXML & "    <author>James Linn</author>"
    strXML=strXML & "    <author>Vaidyanathan Nagarajan</author>"
    strXML=strXML & "    <year>2003</year>"
    strXML=strXML & "    <price>49.99</price>"
    strXML=strXML & "  </book>"
    strXML=strXML & "</bookstore>"
    '解析
    call analyseXML(strXML)
    
    Function analyseXML(strXML)
    	dim retXml,requestInfo,nodes
    	set requestInfo = Server.CreateObject("msxml2.DOMDocument")
    	requestInfo.validateOnParse = false
    	requestInfo.async = false
    	requestInfo.loadXML(strXML)
    
        'root节点
        dim rootNode
        Set rootNode = requestInfo.selectSingleNode("bookstore")
        
        'book节点列表
        dim bookNodes,titleNode,textNode
        Set bookNodes = rootNode.childNodes
        
        dim Node,iLoop,jLoop
        for each Node in bookNodes
            response.Write ("<book ")
            for iLoop=0 to Node.attributes.length-1
                if (Node.attributes(jLoop).nodetype=2) then
                    response.Write (Node.attributes(iLoop).name&"="""&Node.attributes(iLoop).value&""" ")
                end if
            next
            response.Write ("><br>")
            
            iLoop=0
            'response.Write (Node.ChildNodes.length &" ")
            for iLoop=0 to Node.ChildNodes.length-1
                response.Write (" <"&Node.ChildNodes(iLoop).nodename) 
                for jLoop=0 to Node.ChildNodes(iLoop).attributes.length-1
                    if (Node.attributes(jLoop).nodetype=2) then
                        response.Write (" "&Node.ChildNodes(iLoop).attributes(jLoop).name&"="""&Node.ChildNodes(iLoop).attributes(jLoop).value&""" ")
                    end if
                next
                response.Write (">" & Node.ChildNodes(iLoop).text)
                response.Write ("</"&Node.ChildNodes(iLoop).nodename&"></br>") 
            next 
            
            response.Write ("</book></br>")
        next
    
        ''--------------------------------------------------------------------
        ''第4个book的第3个节点  i=3,j=2
        'dim i,j
        'i=3
        'j=2
        'response.Write ("</br>nodename=" & bookNodes.item(i).ChildNodes(j).nodename & ",text=" & bookNodes.item(i).ChildNodes(j).text & "</br>")
        'response.Write ("</br>nodename=" & bookNodes.item(i).ChildNodes(j).nodename & ",text=" & bookNodes.item(i).ChildNodes(j).text & "</br>")
    
        ''属性
        'dim bookNode_n,attr
        'Set bookNode_n = rootNode.childNodes.item(3)
        'Set attr = bookNode_n.attributes.getNamedItem("category")   '--注意大小写
        'response.Write ("Attribute="&attr.Value)
        '--------------------------------------------------------------------
    End Function
    
    
    
    Function CreateXML(xmlResponse)
    
      'xmlResponse=               "<GetAllianceInfoFromSessionResponse>"
      'xmlResponse = xmlResponse &"  <ProcessFlag>T</ProcessFlag>"
      'xmlResponse = xmlResponse &"  <AllianceID>1</AllianceID>"
      'xmlResponse = xmlResponse &"  <SID>449</SID>"
      'xmlResponse = xmlResponse &"  <Ouid />"
      'xmlResponse = xmlResponse &"  <Session>U449</Session>"
      'xmlResponse = xmlResponse &"</GetAllianceInfoFromSessionResponse>"
      
      if xmlResponse="" then
        CreateXML=""
      else
    		dim retXml,requestInfo,nodes
    		set requestInfo = Server.CreateObject("msxml2.DOMDocument")
    		requestInfo.validateOnParse = false
    		requestInfo.async = false
    		requestInfo.loadXML(xmlResponse)
    		If ucase(requestInfo.selectSingleNode("/Response/Header/@ResultCode").Value)="SUCCESS" then
    
    		    dim iAllianceId,iSid
    		    iAllianceId=requestInfo.selectSingleNode("/Response/GetAllianceInfoFromSessionResponse/AllianceID").text
    		    iSid       =requestInfo.selectSingleNode("/Response/GetAllianceInfoFromSessionResponse/SID").text
    		    response.Write ("iAllianceId="&iAllianceId&",iSid="&iSid)
    		End If
      End if
    End Function
     %>
    
  • 相关阅读:
    shmget() 建立共享内存
    [转]SQL2005 连接问题处理
    [转]工作以后十不要,自勉
    C#学习笔记
    一位软件工程师6年总结(转)
    时间相关处理
    Litter Tips
    [转] VS打开解决方案时报错的处理方法
    面向对象—设计模式
    SQL Server 2000中的错误
  • 原文地址:https://www.cnblogs.com/streetpasser/p/2993570.html
Copyright © 2020-2023  润新知