我在浏览器中点击了一个URL / API并从服务器获得了低于xml的响应。
<test xmlns:taxInfoDto="com.message.TaxInformationDto">
<response>
<code>0000</code>
<description>SUCCESS</description>
</response>
<accounts>
<account currency="BDT" accAlias="6553720">
<currentBalance>856.13</currentBalance>
<availableBalance>856.13</availableBalance>
</account>
</accounts>
<transaction>
<principalAmount>0</principalAmount>
<feeAmount>0.00</feeAmount>
<transactionRef>2570277672</transactionRef>
<externalRef/>
<dateTime>09/03/2016</dateTime>
<userName>01823074838</userName>
<taxInformation totalAmount="0.00"/>
<additionalData/>
</transaction>
</test>
现在我想解析这个xml响应并将其分配给一个变量,这样我就可以在任何地方使用这个变量值。我使用下面的PHP代码。
<?php
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://x.x.x.x:/ussd/process? destination=BANGLA&userName=&secondarySource=01");
curl_setopt($ch, CURLOPT_HEADER, 0);
$retValue = curl_exec($ch);
return $retValue;
?>
我的产量低于产量。
0000SUCCESS856.13 856.13 00.00257027770913/03/201601823074838
任何人都可以帮助我如何解析每个值并将其分配给变量。
答案 0 :(得分:1)
可能的解决方案是添加CURLOPT_RETURNTRANSFER选项:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
从手册:
TRUE以将返回值作为字符串返回 curl_exec()而不是直接输出。
您可以使用例如simplexml_load_string来加载返回的字符串并访问其属性:
<?php
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://x.x.x.x:/ussd/process? destination=BANGLA&userName=&secondarySource=01");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$retValue = curl_exec($ch);
$simpleXMLElement = simplexml_load_string($retValue);
$description = (string)$simpleXMLElement->response->description;
$username = (string)$simpleXMLElement->transaction->userName;
// etc ..