0

我是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 格式返回值。

请给我有关如何读取该值的解决方案。

4

2 回答 2

1

好吧,我认为 JSON 函数可以在您的机器上运行。我认为是因为你得到的错误。来自 DanFromGermany 的示例也应该可以工作,但 URL 有点长,所以它可能被切断了。您可以尝试以下方法:

1.) 转到此处:https ://api.eancdn.com/api/tester/并从上面的链接中选择您要解析的内容。我试过“酒店清单”。因此,单击链接“酒店列表”,选择 JSON 格式并单击继续。然后你会看到下面的整个链接(它很长)。右键单击并复制它。

2.)这个PHP代码应该可以工作(它对我有用)它只是JSON结构有点复杂,然后是ARRAY所以重要的数据非常深:)

$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>";
}

3.)还有其他数据,您可以为每家酒店获取它。检查一些样本并在此处返回数据:JSON1(返回数组)和此处的一些解析数据,如酒店 ID、酒店地址等 - 与上述相同的 PHP 代码- 2。)

于 2013-10-08T13:45:39.417 回答
0

如何从“酒店列表”示例中获取 Json

来自https://api.eancdn.com/api/tester/#query=basicAvailability

$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);

这至少会帮助您尝试找到正确的数组元素。我必须管理他们的 JSON 相当奇怪(使用 0: ..., 1: ...)。

于 2013-10-08T12:24:54.510 回答