您好,登錄后才能下訂單哦!
1、關于DOM
文件名:city.php
//實現將各地區的天氣情況入庫
<?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"; //創建對象 $dom=new DOMDocument(); //print_r($dom);die; $dom->load($url); //讀取最外層的節點 $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"); //拼寫添加sql語句 $sql = "insert into weather(quName,pyName,cityname,state1,state2,stateDetailed,tem1,tem2,windState)values('".$quName."','".$pyName."','".$cityname."','".$state1."','".$state2."','".$stateDetailed."','".$tem1."','".$tem2."','".$windState."')"; //執行sql語句 set_time_limit(0);//取消腳本執行時間限制 $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);//取消腳本執行時間限制 //$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);//取消腳本執行時間限制 $data1 = $pdo->exec($sql2); } } } ?>
2、XML基于事件,循環出各地區天氣信息: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"); ?>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。