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>
LOCAL lnSuccess LOCAL lnBFound LOCAL loXml LOCAL lcStrPrice loXml = 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. lnSuccess = loXml.LoadXmlFile("soapResponse.xml") IF (lnSuccess <> 1) THEN ? loXml.LastErrorText QUIT ENDIF * The quickest way to get a piece of data is w/ the * ChilkatPath method. * To get the content of the m:Price node: lcStrPrice = loXml.ChilkatPath("soap:Body|m:GetStockPriceResponse|m:Price|*") ? "Price = " + lcStrPrice * ------------------------------------ * Another way of doing it: * Another way to get it is to navigate to the node. * Navigate to soap:Body loXml.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.) lnBFound = loXml.GetNthChildWithTag2("m:GetStockPriceResponse",0) IF (lnBFound <> 1) THEN ? "Did not find m:GetStockPriceResponse node." QUIT ENDIF * One more to go.. lnBFound = loXml.GetNthChildWithTag2("m:Price",0) IF (lnBFound <> 1) THEN ? "Did not find m:Price node." QUIT ENDIF * The content of the "m:Price" node is "34.5" lcStrPrice = loXml.Content ? "Price = " + lcStrPrice * Restore the xml object's internal reference to the root * of the XML document: loXml.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: lnBFound = loXml.SearchForTag2(loXml,"m:Price") IF (lnBFound <> 1) THEN * Not found... QUIT ENDIF * The content of the "m:Price" node is "34.5" lcStrPrice = loXml.Content ? "Price = " + lcStrPrice * Restore the xml object's internal reference to the root * of the XML document: loXml.GetRoot2() * ------------------------------------ * Another way of doing it: * Again, assuming there is only a single node with the * tag to be fetched: lcStrPrice = loXml.AccumulateTagContent("m:Price","") ? "Price = " + lcStrPrice * There are many other possible ways of doing the same thing... |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser