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

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");
 ?>
时间: 2024-08-26 13:07:27

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

如何在跨平台的情况下获取可执行文件的详细信息和属性

很多情况下我们需要获取到系统中一些可执行文件的版本号,以便做一些附加动作!其实可以使用jna获取,但是这将依赖人家,所以还是Java自己来吧!好啦,直接上代码吧 /** * @Description: * * @Title: FileInfoUtil.java * @Package com.joyce.util * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-5-12 下午03:46:32 * @versi

webService获取电话号归属地和获取天气情况步骤,及创建属于自己的webservice

一.什么是Web服务 Web服务是一种可以用来解决跨网络应用集成问题的开发模式,目的是保证不同平台的应用服务可以互操作 二.Web服务的三个核心 Soap: SOAP(Simple Object Access Protocol,简单对象访问协议)是一个基于xml的协议,用于在分步的应用程序都可以识别.另外,SOAP本身没有定义任何程序语言,这使得SOAP能够以消息的形式传递到各种远程系统中. SOAP所使用的传输协议,可以是HTTP,SMTP,POP3,JMS. SOAP包括了4部分: 01."

python gui临时文件天气情况 这个urls.py源文件

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' """ 这是一个简单的查询工具,是由pyqt+python+qt设计器制作而已的小工具 版本: ''' python2.7.8 pyqt4.10 ''' 操作系统;'windows7 64bit',中文 作者:空白 博客地址:http://www.cnblogs.com/mhxy13867806343/  and  https://github.

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php 1. Keyword/subtitle 1 2. 使用dwr3的异常convert处理不能解除,,,按照盗垒能解除了.... 1 3. 使用js 回回调功能处理...还是不能,子能显示个..javaClassName:"java.lang.Throwable",message:"Error"} 2 4. 异常转换器 2 5. 当然如果想要只针对某一个f

android 得到本地天气情况

今天项目新添加了得到本地当天的温度,湿度,pm2.5的值的需求,研究了下,记下劳动成果,为码农少走弯路做贡献. 思路如下: 1.得到手机的外网ip(http://ip-api.com/json) 2.得到本地信息:省份和城市名(http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=) 3.根据省份城市名拿到城市代码(https://code.csdn.net/snippets/621277/master/blog_20

VCF文件详细信息

Variant Call Format(VCF)是一个用于存储基因序列突变信息的文本格式.表示单碱基突变, 插入/缺失, 拷贝数变异和结构变异等.BCF格式文件是VCF格式的二进制文件. CHROM [chromosome]: 染色体名称. POS [position]: 参考基因组突变碱基位置,如果是INDEL(插入缺失),位置是INDEL的第一个碱基位置. ID [identifier]: 突变的名称.若没有,则用'.'表示其为一个新变种. REF [reference base(s)]:

EF中提示一个或者多个验证出现错误,查看 EntityValidationErrors 详细信息的解决方法

摘自:http://www.cnblogs.com/angels/archive/2012/11/06/2757231.html 我们在 EF 的编程中,有时候会遇到这样一个错误: 但是,按照他的提示 “See 'EntityValidationErrors' property for more details.” 去 Exception 中查看,却只能看到 并不能看到具体的是那个属性为什么验证不通过,也许不少人都遇到这种情况. 这里给大家介绍一个Exception类,让我们能够轻松的知道具体的

【第29篇】通过HttpClient+Gson解析中国天气网的天气预报信息

http://jilongliang.iteye.com/blog/1932110 package com.test; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; im

01.阿里云SDK调用,获取ESC主机详细信息

一:通过python SDK获取云主机的详细信息 1.创建Accessky码(不做展示) 2.通过pip安装SDK模块,这个阿里云帮助里面有,也不做详细展示. 3.详细使用方法看代码 我下面展示的返回的json格式,默认为xml格式. DescribeInstancesRequest 为获取esc详细信息的函数,其他函数可以参考阿里云官方支持,我后续也会更新. #! -*- coding:utf-8 -*- import json from aliyunsdkcore import client