PHP cURL,提取一个XML响应

PHP cURL,提取一个XML响应,php,curl,Php,Curl,我在服务器上调用PHP cURL方法,响应为XML类型。cURL将输出保存在标量类型变量中(删除标记后)。有没有办法将其存储在对象/散列/数组中以便易于解析?没有,CURL没有解析XML的功能,它不知道返回的内容。它充当获取内容的代理。该怎么办由你决定 如果可能,请使用JSON(以及JSON_解码)-如果不可能,可以使用任何用于parsin的XML库,例如DOMXML: 作为$oEntry输入){ echo$oEntry->title.“\n”; } 只需添加标题('Content-type:a

我在服务器上调用PHP cURL方法,响应为XML类型。cURL将输出保存在标量类型变量中(删除标记后)。有没有办法将其存储在对象/散列/数组中以便易于解析?

没有,CURL没有解析XML的功能,它不知道返回的内容。它充当获取内容的代理。该怎么办由你决定

如果可能,请使用JSON(以及JSON_解码)-如果不可能,可以使用任何用于parsin的XML库,例如DOMXML:

作为$oEntry输入){
echo$oEntry->title.“\n”;
}
只需添加
标题('Content-type:application/xml')示例:

<songs>
<song dateplayed="2011-07-24 19:40:26">
    <title>I left my heart on Europa</title>
    <artist>Ship of Nomads</artist>
</song>
<song dateplayed="2011-07-24 19:27:42">
    <title>Oh Ganymede</title>
    <artist>Beefachanga</artist>
</song>
<song dateplayed="2011-07-24 19:23:50">
    <title>Kallichore</title>
    <artist>Jewitt K. Sheppard</artist>
</song>

我把心留在了欧罗巴

简单加载xml文件

$xml = @simplexml_load_string($retValuet);

$status = (string)$xml->Status; 
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;

我同意这一点。但是为什么不显示标签呢。我做回声。这是因为浏览器吗?是的,浏览器将XML视为(X)HTML,因此如果遇到>或<,它将被视为普通标记…如果您回显Htmlenties(…),您将看到完整的XML。您是否可以扩展您所说的“删除标记后”。下载页面(),真的吗?至少当你建议一个函数时,坚持使用内置函数或定义你建议的函数。新手很容易迷路。我建议您编辑此文件,并用一个简单的文件替换它,至少要获取内容()![CDATA使用此功能?当我打印$oXML时,我看不到![CDATA但在htmlentities上,我可以看到它。
<?php
$mysongs = simplexml_load_file('songs.xml');
echo $mysongs->song[0]->artist;
?>
$xml = @simplexml_load_string($retValuet);

$status = (string)$xml->Status; 
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;
$sXML = download_page('http://alanstorm.com/atom');
// Comment This    
// $oXML = new SimpleXMLElement($sXML);
// foreach($oXML->entry as $oEntry){
//  echo $oEntry->title . "\n";
// }
// Use json encode
$xml = simplexml_load_string($sXML);
$json = json_encode($xml);
$arr = json_decode($json,true);
print_r($arr);