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
 %>
原文地址:https://www.cnblogs.com/streetpasser/p/2993570.html