千家信息网

XMl 各地区天气情况的详细信息,并将解析的数据入库

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,1、关于DOM文件名:city.php//实现将各地区的天气情况入库
千家信息网最后更新 2025年02月05日XMl 各地区天气情况的详细信息,并将解析的数据入库

1、关于DOM

文件名:city.php

//实现将各地区的天气情况入库

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

$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("
\n"); print_r($stack); print("
\n"); ?>


0