您好,登錄后才能下訂單哦!
1、關(guān)于DOM
文件名:city.php
//實(shí)現(xiàn)將各地區(qū)的天氣情況入庫(kù)
<?php header("content-type:text/html;charset=utf-8"); $dsn="mysql:dbname=news;host=127.0.0.1;charset=utf8"; $user="root"; $psw=""; $pdo=new PDO($dsn,$user,$psw); $url = "http://flash.weather.com.cn/wmaps/xml/china.xml"; //創(chuàng)建對(duì)象 $dom=new DOMDocument(); //print_r($dom);die; $dom->load($url); //讀取最外層的節(jié)點(diǎn) $city=$dom->getElementsByTagName("city"); //print_r($city);die; $len = $city->length; for($i=0;$i<$len;$i++){ $item = $city->item($i); $quName = $item->getAttribute("quName"); //print_r($quName);die; $pyName = $item->getAttribute("pyName"); $cityname = $item->getAttribute("cityname"); $state1 = $item->getAttribute("state1"); $state2 = $item->getAttribute("state2"); $stateDetailed = $item->getAttribute("stateDetailed"); $tem1 = $item->getAttribute("tem1"); $tem2 = $item->getAttribute("tem2"); $windState = $item->getAttribute("windState"); //拼寫(xiě)添加sql語(yǔ)句 $sql = "insert into weather(quName,pyName,cityname,state1,state2,stateDetailed,tem1,tem2,windState)values('".$quName."','".$pyName."','".$cityname."','".$state1."','".$state2."','".$stateDetailed."','".$tem1."','".$tem2."','".$windState."')"; //執(zhí)行sql語(yǔ)句 set_time_limit(0);//取消腳本執(zhí)行時(shí)間限制 $res = $pdo->exec($sql); //獲取省份信息 $dom1=new DOMDocument(); @$dom1->load("http://flash.weather.com.cn/wmaps/xml/".$pyName.".xml"); $citys=$dom1->getElementsByTagName("city"); $leng = $citys->length; for($j=0;$j<$leng;$j++){ $item1 = $citys->item($j); $cityX = $item1->getAttribute("cityX"); $cityY = $item1->getAttribute("cityY"); $cityname = $item1->getAttribute("cityname"); $centername = $item1->getAttribute("centername"); $fontColor = $item1->getAttribute("fontColor"); $pyName = $item1->getAttribute("pyName"); $state1 = $item1->getAttribute("state1"); $state2 = $item1->getAttribute("state2"); $stateDetailed = $item1->getAttribute("stateDetailed"); $tem1 = $item1->getAttribute("tem1"); $tem2 = $item1->getAttribute("tem2"); $temNow = $item1->getAttribute("temNow"); $windState = $item1->getAttribute("windState"); $windDir = $item1->getAttribute("windDir"); $windPower = $item1->getAttribute("windPower"); $humidity = $item1->getAttribute("humidity"); $time = $item1->getAttribute("time"); $url = $item1->getAttribute("url"); //var_dump($humidity);die; $sql1 = "insert into sheng(cityX,cityY,cityname,centername,fontColor,pyName,state1,state2,stateDetailed,tem1,tem2,temNow,windState,windDir,windPower,humidity,time,url)values('".$cityX."','".$cityY."','".$cityname."','".$centername."','".$fontColor."','".$pyName."','".$state1."','".$state2."','".$stateDetailed."','".$tem1."','".$tem2."','".$temNow."','".$windState."','".$windDir."','".$windPower."','".$humidity."','".$time."','".$url."')"; set_time_limit(0);//取消腳本執(zhí)行時(shí)間限制 //$data = $pdo->exec($sql1); //獲取市的天氣信息 $dom2=new DOMDocument(); @$dom2->load("http://flash.weather.com.cn/wmaps/xml/".$pyName.".xml"); $city1=$dom2->getElementsByTagName("city"); $length = $city1->length; //print_r($length); for($s=0;$s<$length;$s++){ $item2 = $city1->item($s); $cityX = $item2->getAttribute("cityX"); $cityY = $item2->getAttribute("cityY"); $cityname = $item2->getAttribute("cityname"); $centername = $item2->getAttribute("centername"); $fontColor = $item2->getAttribute("fontColor"); $pyName = $item2->getAttribute("pyName"); $state1 = $item2->getAttribute("state1"); $state2 = $item2->getAttribute("state2"); $stateDetailed = $item2->getAttribute("stateDetailed"); $tem1 = $item2->getAttribute("tem1"); $tem2 = $item2->getAttribute("tem2"); $temNow = $item2->getAttribute("temNow"); $windState = $item2->getAttribute("windState"); $windDir = $item2->getAttribute("windDir"); $windPower = $item2->getAttribute("windPower"); $humidity = $item2->getAttribute("humidity"); $time = $item2->getAttribute("time"); $url = $item2->getAttribute("url"); $sql2 = "insert into sheng(cityX,cityY,cityname,centername,fontColor,pyName,state1,state2,stateDetailed,tem1,tem2,temNow,windState,windDir,windPower,humidity,time,url)values('".$cityX."','".$cityY."','".$cityname."','".$centername."','".$fontColor."','".$pyName."','".$state1."','".$state2."','".$stateDetailed."','".$tem1."','".$tem2."','".$temNow."','".$windState."','".$windDir."','".$windPower."','".$humidity."','".$time."','".$url."')"; set_time_limit(0);//取消腳本執(zhí)行時(shí)間限制 $data1 = $pdo->exec($sql2); } } } ?>
2、XML基于事件,循環(huán)出各地區(qū)天氣信息:jiexi.php
<?php header("content-type:text/html;charset=utf-8"); $file = 'http://flash.weather.com.cn/wmaps/xml/china.xml'; $stack = array(); function startTag($parser, $name, $attrs) { global $stack; $tag=array("name"=>$name,"attrs"=>$attrs); array_push($stack,$tag); } function cdata($parser, $cdata) { global $stack,$i; if(trim($cdata)) { $stack[count($stack)-1]['cdata']=$cdata; } } function endTag($parser, $name) { global $stack; $stack[count($stack)-2]['children'][] = $stack[count($stack)-1]; array_pop($stack); } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startTag", "endTag"); xml_set_character_data_handler($xml_parser, "cdata"); $data = xml_parse($xml_parser,file_get_contents($file)); if(!$data) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } xml_parser_free($xml_parser); print("<pre>\n"); print_r($stack); print("</pre>\n"); ?>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。