2013-06-11 59 views
0

我是curl和xml的noob,但是我已经搜索了这个网站和网络以获得对此的答案,而且我没有找到任何可行的方法。将cURL响应转换为变量

我使用cURL发送XML,收件人服务正在正确获取数据并创建我正在接收的响应。响应从curl_exec回显为

<TRANS> 
    <HPAY> 
     <ID>223</ID> 
     <MLABEL>XXXX XXXX XXXX 9854</MLABEL> 
     <DATE>11/06/2013 21:00:36</DATE> 
     <SEN></SEN> 
     <REC>sc</REC> 
     <DEB>0.00</DEB> 
     <CRED>10.34</CRED> 
     <COM>2.00</COM> 
     <MSG></MSG> 
     <STATUS>3</STATUS> 
    </HPAY> 
</TRANS> 

现在我需要在变量转这些了,我现在在如何做到这一点抓我的头。

编辑,尝试粘贴浏览器源代码,但它不断改变它。然而,要回答先前的评论,这是一个XML响应

+1

是响应XML并输出它在浏览器中,所以它隐藏了标签?查看页面源以确认。 – somedev

+0

你想分开哪些部分?对于简单的空白分割,你可以使用'explode('',$ str);'。 – ComFreek

+1

使用simplexml或DOMDocument。 – crush

回答

3

只使用SimpleXMLElement

$xml = new SimpleXMLElement($data); 
$details = array(); 
foreach($xml->HPAY->children() as $k => $v) { 
    $details[$k] = "$v"; 
} 
print_r($details); 

输出

Array 
(
    [ID] => 223 
    [MLABEL] => XXXX XXXX XXXX 9854 
    [DATE] => 11/06/2013 21:00:36 
    [SEN] => 
    [REC] => sc 
    [DEB] => 0.00 
    [CRED] => 10.34 
    [COM] => 2.00 
    [MSG] => 
    [STATUS] => 3 
) 

数据See Live DEMO

+0

使用的SimpleXMLElement是生产以下: PHP的警告:的SimpleXMLElement :: __结构():命名空间警告:的xmlns:URI Service_mb不是绝对 我收到来自服务供应商的响应,付款处理器在这种情况下。 – Dave

+0

然后你给的信息是不完整的,只是加了现场演示 – Baba

+0

这个头文件到xml的响应是: <?xml version =“1.0”encoding =“utf-8”?> Dave

0

你需要提取与像XPath的XML解析器