我向API发送请求,该API以XML格式发送响应。
响应如下:
<ns2:HotelInformationResponse hotelId="263933">
<customerSessionId>0ABAAA85-112B-0914-9322-CA866D907EF8</customerSessionId>
<HotelSummary order="0">
<hotelId>263933</hotelId>
<name>Nova Platinum Hotel</name>
<address1>562 Moo 10 Pratamnak Road, Nongprue</address1>
<address2>Banglamung</address2>
<city>Pattaya</city>
<postalCode>20260</postalCode>
<countryCode>TH</countryCode>
如何获取此数据,以便我可以打印像hotelId或name这样的单个值?
我试过这样的话:
$Geosearch = 'APICALLURLHERE';
$fileContents = file_get_contents($Geosearch);
$string_data = $fileContents;
$xml = simplexml_load_string($string_data);
$hotel_id = (string) $xml->hotelId;
$hotel_name = (string) $xml->name;
echo $hotel_id.' '.$hotel_name;
我也试过这个:
$xml = simplexml_load_file("APICALLURLHERE");
echo $xml->hotelId;
echo $xml->name;
答案 0 :(得分:0)
访问远程文件
默认情况下,fopen系列函数(包括file_get_contents和simplexml_load_file)不允许访问远程文件。这是一件非常好的事情,应该保持这种状态。
如果要启用远程文件,则必须更改PHP配置。
http://php.net/manual/en/features.remote-files.php
allow_url_fopen = 1
<小时/> XML文件中的错误
如果您的文件加载正在运行,但您仍然无法使XML工作,那么您可能有一个损坏的XML文件。您可以使用以下代码段调试这些问题:
$doc = simplexml_load_string($xmlstr);
if (!$doc) {
$errors = libxml_get_errors();
foreach ($errors as $error) {
echo display_xml_error($error, $xml);
}
libxml_clear_errors();
}