溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

XMl 各地區(qū)天氣情況的詳細(xì)信息,并將解析的數(shù)據(jù)入庫(kù)

發(fā)布時(shí)間:2020-06-19 18:09:00 來(lái)源:網(wǎng)絡(luò) 閱讀:327 作者:噼里啪啦啦 欄目:軟件技術(shù)

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");
 ?>


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI