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.
Showing posts with label xml. Show all posts
Showing posts with label xml. Show all posts
Sunday, January 25, 2009
Parsing string into XMLReader in PHP5
ป้ายกำกับ:
.NET Web Services,
Calling Web Services,
parser,
php soapCall,
PHP5,
SoapClient,
xml,
xmlreader
Saturday, May 19, 2007
How to Change soap:address when Using NetBeans 5.5
Problem:
In developing web service with netbeans and use Sun application server, how to change soap address location
from
uri =http://100.22.111.111:8081/testws/testService?wsdl
to
soap:address location="http://111.222.33.444:8081/testws/testService"
Solution:
1. Go to directory {local glassfish instance}/domains/domain1/config such as C:\Sun\AppServer\domains\domain1\config
2 modify file domains.xml by modifying element http-listener
from
<http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="server" enabled="true" family="inet" id="http-listener-1" port="8080" security-enabled="false" server-name="" xpowered-by="true">
to
<http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="server" enabled="true" family="inet" id="http-listener-1" port="8081"server-name="111.22.33.444" security-enabled="false" xpowered-by="true">
3. Restart Sun Application Server
4. Deploy Web service and view its WSDL
Now we have soap:address change to 111.22.33.444:8081 as we wish.
ป้ายกำกับ:
netbeans,
soap,
webservices,
wsdl,
xml
Subscribe to:
Posts (Atom)