我想从URL读取XML数据。我有以下网址
http://www.arrowcast.net/fids/mco/fids.asp?sort=city&city=&number=&airline=&adi=A
这是我的代码
$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);
有人可以告诉我如何阅读xml数据吗?
感谢.....
答案 0 :(得分:11)
以下是一些示例代码(您的PHP安装可能无法使用XML解析模块):
<?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)
?>
变量$xml
现在是一个多维键值数组,您应该能够轻松地弄清楚如何从那里获取元素。
答案 1 :(得分:1)
尝试{ 网址url =新网址(“http://durgajobs.com/Bangalore.html”);
URLConnection con=url.openConnection();
int x=0;
while(true)
{
x=con.getInputStream().read();
if(x==-1)
{
break;
}
System.out.print((char)x);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我在php中需要相同的代码
答案 2 :(得分: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());
答案 3 :(得分:0)
这是如何从youtube的rss feed获取通道ID的演示,其中我使用curl从url读取xml数据。
$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);
答案 4 :(得分:0)
try { URL url=new URL("https://www.freshers-job.com/");
URLConnection con=url.openConnection();
int x=0;
while(true)
{
x=con.getInputStream().read();
if(x==-1)
{
break;
}
System.out.print((char)x);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}