Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
|
Parse SOAP XML ResponseCode to parse a SOAP XML response. This is the SOAP response parsed by the code below:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% set xml = Server.CreateObject("Chilkat.Xml") ' Load the XML object with the SOAP response. ' The XML may be loaded from a file by calling ' LoadXmlFile, or directly from a string by calling ' LoadXml. success = xml.LoadXmlFile("soapResponse.xml") If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( xml.LastErrorText) & "</pre>" End If ' The quickest way to get a piece of data is w/ the ' ChilkatPath method. ' To get the content of the m:Price node: strPrice = xml.ChilkatPath("soap:Body|m:GetStockPriceResponse|m:Price|*") Response.Write "<pre>" & Server.HTMLEncode( "Price = " _ & strPrice) & "</pre>" ' ------------------------------------ ' Another way of doing it: ' Another way to get it is to navigate to the node. ' Navigate to soap:Body xml.FirstChild2 ' Navigate to m:GetStockPriceResponse ' You may call FirstChild2, or you may call GetChildWithTag2 ' to get the Nth direct child having a given tag. ' In this case, get the 1st direct child having the tag ' "m:GetStockPriceResponse" ' (Indexing begins at 0, so the 1st occurance is at index 0.) bFound = xml.GetNthChildWithTag2("m:GetStockPriceResponse",0) If (bFound <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( "Did not find m:GetStockPriceResponse node.") & "</pre>" End If ' One more to go.. bFound = xml.GetNthChildWithTag2("m:Price",0) If (bFound <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( "Did not find m:Price node.") & "</pre>" End If ' The content of the "m:Price" node is "34.5" strPrice = xml.Content Response.Write "<pre>" & Server.HTMLEncode( "Price = " _ & strPrice) & "</pre>" ' Restore the xml object's internal reference to the root ' of the XML document: xml.GetRoot2 ' ------------------------------------ ' Another way of doing it: ' If you know that the node w/ the content you want to ' extract is uniquely tagged (i.e. no other node has the same ' tag), then search for the node having the tag: bFound = xml.SearchForTag2(xml,"m:Price") If (bFound <> 1) Then ' Not found... End If ' The content of the "m:Price" node is "34.5" strPrice = xml.Content Response.Write "<pre>" & Server.HTMLEncode( "Price = " _ & strPrice) & "</pre>" ' Restore the xml object's internal reference to the root ' of the XML document: xml.GetRoot2 ' ------------------------------------ ' Another way of doing it: ' Again, assuming there is only a single node with the ' tag to be fetched: strPrice = xml.AccumulateTagContent("m:Price","") Response.Write "<pre>" & Server.HTMLEncode( "Price = " _ & strPrice) & "</pre>" ' There are many other possible ways of doing the same thing... %> </body> </html> |
© 2000-2012 Chilkat Software, Inc. All Rights Reserved.