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>
use chilkat(); $xml = new chilkat::CkXml(); # 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) { print $xml->lastErrorText() . "\r\n"; exit; } # 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|*"); print "Price = " . $strPrice . "\r\n"; # ------------------------------------ # 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) { print "Did not find m:GetStockPriceResponse node." . "\r\n"; exit; } # One more to go.. $bFound = $xml->GetNthChildWithTag2("m:Price",0); if ($bFound != 1) { print "Did not find m:Price node." . "\r\n"; exit; } # The content of the "m:Price" node is "34.5" $strPrice = $xml->content(); print "Price = " . $strPrice . "\r\n"; # 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) { # Not found... exit; } # The content of the "m:Price" node is "34.5" $strPrice = $xml->content(); print "Price = " . $strPrice . "\r\n"; # 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",""); print "Price = " . $strPrice . "\r\n"; # There are many other possible ways of doing the same thing... |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.