5

I want to read XML data from a URL. I have the URL as follows:

http://www.arrowcast.net/fids/mco/fids.asp?sort=city&city=&number=&airline=&adi=A

Here is my code:

$Url="http://www.arrowcast.net/fids/mco/fids.asp?sort=city&city=&number=&airline=&adi=A";  
if (!function_exists('curl_init')){
    die('Sorry cURL is not installed!');
} 
   $ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $Url);   
$output = curl_exec($ch);
$resultCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Close the cURL resource, and free system resources
curl_close($ch);

Could anyone please tell me how to read xml data?

0

3 Answers 3

18

Here is some sample code (XML parsing module may not be available on your PHP installation):

<?php

$url="http://www.arrowcast.net/fids/mco/fids.asp?sort=city&city=&number=&airline=&adi=A";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);    // get the url contents

$data = curl_exec($ch); // execute curl request
curl_close($ch);

$xml = simplexml_load_string($data);
print_r($xml);

?>

The variable $xml now is a multi-dimensional key value array and you should easily be able to figure out how to get the elements from there.

Sign up to request clarification or add additional context in comments.

1 Comment

well, it turns out that you asked the wrong question. "I want to read XML data from a URL". The url you provided is HTML not XML, that code works on the returned curl data being XML. Please use the link on the comment under your question to render that HTML to an array.
0
// the SAX way:
XMLReader myReader = XMLReaderFactory.createXMLReader();
myReader.setContentHandler(handler);
myReader.parse(new InputSource(new URL(url).openStream()));

// or if you prefer DOM:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new URL(url).openStream());

Comments

0

This is the demo of how to get channel id from rss feed of youtube in which i read xml data from url using curl.

$channel_id = 'XXXXXXXX'; // put the channel id here

//using curl
$url = 'https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id.'&orderby=published';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response  = curl_exec($ch);
curl_close($ch);

$response=simplexml_load_string($response);
$json = json_encode($response);
$youtube= json_decode($json, true);

$count = 0;
if(isset($youtube['entry']['0']) && $youtube['entry']['0']!=array())
{
    foreach ($youtube['entry'] as $k => $v) {
        $yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
        $yt_vids[$count]['title'] = $v['title'];
        $count++;
    }
}
else
{
    $yt_vids[$count]['id']=str_replace('http://www.youtube.com/watch?v=', '', $youtube['entry']['link']['@attributes']['href']);
    $yt_vids[$count]['title']=$youtube['title'];
}
echo "<pre>";
print_r($yt_vids);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.