2012-01-01 13 views
11

मैं दूरस्थ URL लोड करने के लिए SimpleXML का उपयोग करने का प्रयास कर रहा हूं।दूरस्थ URL लोड करने के लिए SimpleXML का उपयोग

यदि मैं अपने ब्राउज़र में निम्न टाइप करता हूं;

http://api.ean.com/ean-services/rs/hotel/v3/list?cid=55505&minorRev=12&apiKey=2hkhej72gxyas3ky6hhjtsga&locale=en_US&currencyCode=USD&customerIpAddress=10.184.2.9&customerUserAgent=Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+en-US;+rv:1.9.2.25)+Gecko/20111212+Firefox/3.6.25&customerSessionId=&xml=<HotelListRequest><arrivalDate>01/22/2012</arrivalDate><departureDate>01/24/2012</departureDate><RoomGroup><Room><numberOfAdults>1</numberOfAdults><numberOfChildren>1</numberOfChildren><childAges>4</childAges></Room></RoomGroup><city>Amsterdam</city><countryCode>NL</countryCode><supplierCacheTolerance>MED</supplierCacheTolerance></HotelListRequest> 

यह काम करता है!

यदि मैं कोशिश करता हूं;

$url = 'http://api.ean.com/ean-services/rs/hotel/v3/list?cid=55505&minorRev=12&apiKey=2hkhej72gxyas3ky6hhjtsga&locale=en_US&currencyCode=USD&customerIpAddress=10.184.2.9&customerUserAgent=Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+en-US;+rv:1.9.2.25)+Gecko/20111212+Firefox/3.6.25&customerSessionId=&xml=<HotelListRequest><arrivalDate>01/22/2012</arrivalDate><departureDate>01/24/2012</departureDate><RoomGroup><Room><numberOfAdults>1</numberOfAdults><numberOfChildren>1</numberOfChildren><childAges>4</childAges></Room></RoomGroup><city>Amsterdam</city><countryCode>NL</countryCode><supplierCacheTolerance>MED</supplierCacheTolerance></HotelListRequest> '; 
$xml = simplexml_load_file($url); 

मुझे निम्न त्रुटि से मुलाकात मिली है;

Warning: simplexml_load_file() [function.simplexml-load-file]: http://api.ean.com/ean-services/rs/hotel/v3/list?cid=55505&minorRev=12&apiKey=2hkhej72gxyas3ky6hhjtsga&locale=en_US&currencyCode=USD&customerIpAddress=10.184.2.9&customerUserAgent=Mozilla/5.0%2B(Windows;%2BU;%2BWindows%2BNT%2B6.1;%2Ben-US;%2Brv:1.9.2.25)%2BGecko/20111212%2BFirefox/3.6.25&customerSessionId=&xml=%3CHotelListRequest%3E%3CarrivalDate%3E01/22/2012%3C/arrivalDate%3E%3CdepartureDate%3E01/24/2012%3C/departureDate%3E%3CRoomGroup%3E%3CRoom%3E%3CnumberOfAdults%3E1%3C/numberOfAdults%3E%3CnumberOfChildren%3E1%3C/numberOfChildren%3E%3CchildAges%3E4%3C/childAges%3E%3C/Room%3E%3C/RoomGroup%3E%3Ccity%3EAmsterdam%3C/city%3E%3CcountryCode%3ENL%3C/countryCode%3E%3CsupplierCacheTolerance%3EMED%3C/supplierCacheTolerance%3E%3C/HotelListRequest%3E%20:1: parser error : Start tag expected, '<' not found in C:\Program Files\XAMPP\xampplite\htdocs\hotel\results.php on line 29 

कि त्रुटि की सबसे उल्लेखनीय हिस्सा है: पार्सर त्रुटि: शुरू होने की उम्मीद tag, '' < 'नहीं

मुझे लगता है कि फ़ाइल का उपयोग और परिणाम को स्वरूपित करने PHP/SimpleXML का उपयोग करना चाहेंगे पाया - लेकिन अब तक मैं अटक गया हूँ।

मैंने सोचा कि यह धागा HERE जो कच्चेरलेनकोड के बारे में बात करता है, मदद कर सकता है लेकिन ऐसा नहीं हुआ, या तो मुझे कुछ याद आ रहा है।

उत्तर

30

परिणाम जेसन के रूप में वापस आ रहे हैं। json_decode के साथ simplexml_load_file को बदलें और आपको एक उचित वस्तु दिखाई देगी।

यदि आप एक्सएमएल का उपयोग करना चाहते हैं, तो आपको इसे हेडर में निर्दिष्ट करना होगा।

$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); 
$url = 'http://api.ean.com/ean-services/rs/hotel/v3/list?cid=55505&minorRev=12&apiKey=2hkhej72gxyas3ky6hhjtsga&locale=en_US&currencyCode=USD&customerIpAddress=10.184.2.9&customerSessionId=&xml=<HotelListRequest><arrivalDate>01/22/2012</arrivalDate><departureDate>01/24/2012</departureDate><RoomGroup><Room><numberOfAdults>1</numberOfAdults><numberOfChildren>1</numberOfChildren><childAges>4</childAges></Room></RoomGroup><city>Amsterdam</city><countryCode>NL</countryCode><supplierCacheTolerance>MED</supplierCacheTolerance></HotelListRequest> '; 

$xml = file_get_contents($url, false, $context); 
$xml = simplexml_load_string($xml); 
print_r($xml); 
?> 
+0

धन्यवाद कि सरणी वापस जाने के लिए लगता है, लेकिन क्या आप मुझे बता सकते हैं कि क्या यह संभव है कि यूआरएल है कि यह JSON बनाता है के रूप में यह मेरे लिए एक्सएमएल की तरह लग रहा है और यह भी क्या एक उदाहरण होगा के बारे में है: निम्नलिखित कोड मान्य XML वापस आ जाएगी उपरोक्त से लौटाए गए डेटा के साथ काम करने का; i.e. echo $ xml-> hotelId [1]; या कुछ समान की तरह? आपकी सहायता के लिए धन्यवाद. – Wordpressing

+1

यूआरएल एन्कोडिंग निर्दिष्ट नहीं करता है - यह खुराक हेडर स्वीकार करता है। आपका उदाहरण सही ट्रैक पर बहुत अधिक है, लेकिन आपको $ XML ऑब्जेक्ट भाग के लिए एक अलग प्रश्न का उपयोग करना चाहिए। कृपया स्वीकार करना न भूलें! – Mbrevda

+0

ठीक है जो अब मुझे और अधिक समझ में आता है, आपकी मदद के लिए धन्यवाद! – Wordpressing

संबंधित मुद्दे