Problem:  How to parse string result into XML parser in PHP5
Solution:  Use one of several PHP5 extensions such as XMLReader
$reader = new XMLReader();
$reader->XML($resultInString);
Below is the sample code that calls PTT Web Services  and extracting only the price of GASOHOL
<?php
$wsdl = 'http://www.pttplc.com/pttinfo.asmx?WSDL';
$client = new SoapClient($wsdl);
//array('proxy_host' => "202.12.97.116",
//'proxy_port' => 8088));
$methodName = 'CurrentOilPrice';
$params = array('Language'=>'EN');
$soapAction = 'http://www.pttplc.com/ptt_webservice/CurrentOilPrice';
$objectResult = $client->__soapCall($methodName,
array('parameters' => $params), array('soapaction' => $soapAction));
// echo  $objectResult->CurrentOilPriceResult;
$result = $objectResult->CurrentOilPriceResult;
$reader = new XMLReader();
$reader->XML($result);
$found = false;
  while ($reader->read()) {
      $tagName = $reader->name;
      $reader->read();
      $tagValue = $reader->value;
      if ($tagName == "PRODUCT" &&
      $tagValue == "GASOHOL") {
          $found = true;
      }
      if ($found == true && $tagName == "PRICE") {
          $price = $reader->value;
          break;
      }
  }
  echo "GASOHOL price is $price";
  $reader->close();
?>
Then, you should get the result as shown in the below picture.
Sunday, January 25, 2009
Parsing string into XMLReader in PHP5
ป้ายกำกับ:
.NET Web Services,
Calling Web Services,
parser,
php soapCall,
PHP5,
SoapClient,
xml,
xmlreader
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment