Php 如何从url获取xml数据

Php 如何从url获取xml数据,php,json,rest,curl,Php,Json,Rest,Curl,我是php编程新手。 实际上,我想提取驻留在站点上的xml代码。 到现在为止,我用 $xml=simplexml_file_load(//URL); foreach($xml->movie as $Movies) { print $Movies->name; } 但这段代码不会产生任何价值 之后我还用了 $header[] = "Accept: application/xml"; $ch = curl_init(); echo $ch; curl_se

我是php编程新手。 实际上,我想提取驻留在站点上的xml代码。 到现在为止,我用

$xml=simplexml_file_load(//URL);  
foreach($xml->movie as $Movies)  
{  
print $Movies->name;  
} 
但这段代码不会产生任何价值

之后我还用了

$header[] = "Accept: application/xml";  
$ch = curl_init();  
echo $ch;  
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header );  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');  
curl_setopt( $ch, CURLOPT_URL, $url );  
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );  
$contents = curl_exec ($ch);  
echo $contents;   
curl_close($ch);
但这段代码只返回xml中的值(排除标记)

我也用过

readfile($url);  
但此代码以json格式返回值

请给出如何读取该值的解决方案。

如何从“Hotel List”示例中获取Json 从


这至少可以帮助您找到正确的数组元素。我必须管理他们的JSON,这很奇怪(0:…,1:…)。

我认为JSON函数可以在您的机器上工作。我这么认为是因为你犯了一个错误。同样,来自德国的Danfrom的例子也应该有效,但URL有点长,所以可能被切断了。以下是您可以尝试的内容:

1.)转到此处:从上面的链接中选择要解析的内容。我试过用“酒店名单”。所以点击链接“Hotel List”,选择JSON格式并点击继续。然后你会看到整个链接(很长)。右键单击并复制它

2.)这段PHP代码应该可以工作(对我来说很有效)它只是JSON和数组的结构有点复杂,所以重要的数据非常深入:)

$url=”https://api.eancdn.com/ean-services/..."; //(此处为整个URL-其长度)
$arr=json_decode(file_get_contents($url),true);//true表示数组,false表示对象
//分析来自数组$arr['HotelListResponse']['HotelList']['HotelSummary']的数据
foreach($arr['HotelListResponse']['HotelList']['HotelSummary']作为$hotel){
$hname=$hotel['name'];//从数组中获取酒店名称
$hid=$hotel['hotelId'];//从数组中获取酒店id
$haddress=$hotel['address1'];//从数组中获取hotel address1
echo“酒店名称:$hname酒店ID:$hid酒店地址1:$haddress
”; }

3.)还有其他数据,您可以从每个酒店获取。检查一些示例并在此处返回数据:此处为-2。)

不太可能将
作为根标记。请给我们XML文件的URL。您确定要解析的URL确实返回XML结构化数据还是返回JSON数据?XML与标记相关,如。。。JSON看起来有点像带逗号的数组?如果readfile返回JSON,我想您需要解析JSON数据,而不是XML,这就是为什么XML解析器什么也不返回的原因是,JSON看起来有{}、:、“”和@。这就是为什么什么也不返回。您应该解析JSON,而不是XML。例如,您可以使用CURL或file_get_content($url)获取JSON内容。之后,您应该解析JSON。在此处阅读更多信息:例如
https://api.eancdn.com/ean-services/rs/hotel/v3/list?cid=XXXX&minorRev=99&apiKey=XXXX&locale=en_US¤cyCode=INR
这是Url@danfromGermany我想JSON_DECODE()函数在我的机器上不工作如何安装JsonParser@chiragNandwani检查此链接:您需要安装PECL扩展。或者,如果您有此选项,请将PHP更新到至少5.2版本。你收到任何错误吗?首先使用phpinfo()进行检查;搜索JSON,也许你已经启用了,但是还有其他错误,非常感谢。。。这个答案给了我所有的答案。。谢谢
$url = 'https://api.eancdn.com/ean-services/rs/hotel/v3/list?cid=55505&minorRev=99&apiKey=cbrzfta369qwyrm9t5b8y8kf&locale=en_US&currencyCode=USD&......';
$arr = json_decode(file_get_contents($url), true); // true is for array, false for objects

print_r($arr);
$url = "https://api.eancdn.com/ean-services/..."; //(ENTIRE URL HERE - its LONG)
$arr = json_decode(file_get_contents($url), true); // true is for array, false for objects

//parse data from array $arr['HotelListResponse']['HotelList']['HotelSummary']
foreach ($arr['HotelListResponse']['HotelList']['HotelSummary'] as $hotel){

$hname = $hotel['name']; //get hotel name from array
$hid = $hotel['hotelId']; //get hotel id from array
$haddress = $hotel['address1']; //get hotel address1 from array

echo "<b>Hotel name:</b> $hname Hotel ID: $hid Hotel address 1: $haddress <br>";
}