想使用CURL在变量中获取xml响应值

时间:2016-03-09 07:24:17

标签: php xml curl

我在浏览器中点击了一个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>

我使用下面的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.00257027769109/03/201601823074838

但我喜欢在变量中分配每个值并想要打印它。 比如

code=0000
description=SUCCESS
currentBalance=856.13

任何人都请帮忙。

1 个答案:

答案 0 :(得分:0)

我相信您正在浏览器中查看cURL请求的输出:您需要转义输出以防止浏览器将其解释为HTML / XML,因此在显示之前在输出上应用htmlentities它如:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
....
return htmlentities($retValue);