这里的天气属性有很多,可以根据自己的需求获取天气属性

这里用到了org.json的jar包,因为要使用XML属性解析数据,还有alibab.JAONObject的jar包 

/*** 天气预报-更新* 定时任务,每5分钟获取一次天气信息* @return*/@Scheduled(cron = "0 0/5 * * * ?")//0 0/5 * * * ? 5分钟执行一次public void update() throws Exception{try {//定义list集合List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();//定义map集合Map<String, Object> map = new HashMap<String, Object>();//实例化天气类SWeather weatherinfo=new SWeather();HttpClient client = HttpClientBuilder.create().build();//获取天气信息的XML内容信息String  url = "http://flash.weather.com.cn/wmaps/xml/chongqing.xml"; // url:网址HttpGet post=new HttpGet(url);HttpResponse response =client.execute(post);System.out.println(response);BufferedReader rd= new BufferedReader(new InputStreamReader(response.getEntity().getContent()));StringBuffer result=new StringBuffer();String line="";while ((line=rd.readLine())!=null){result.append(line);}//通过org.json的依赖包,获取XML结构信息org.json.JSONObject xmlJSONObj= XML.toJSONObject(result.toString());//将Object信息转为StringString jsonStr = xmlJSONObj.toString();com.alibaba.fastjson.JSONObject alijsonStr = com.alibaba.fastjson.JSONObject.parseObject(jsonStr);//获取重庆信息com.alibaba.fastjson.JSONObject info = alijsonStr.getJSONObject("chongqing");//设定迭代器iterIterator iter = info.entrySet().iterator();//通过while循环获取key和value值while (iter.hasNext()) {Map.Entry entry = (Map.Entry) iter.next();//获取key的值String key=entry.getKey().toString();//获取value的值String value=entry.getValue().toString();//蒋value的值转为JSONArrayJSONArray jsonData2= JSONArray.parseArray(value);//循环获取第一个为“重庆”的天气信息for(int i=0;i<1;i++){com.alibaba.fastjson.JSONObject jsonObj=jsonData2.getJSONObject(i);//拼接天气温度String temperature=jsonObj.getString("tem1")+"/"+jsonObj.getString("tem2")+"℃";//拼接风力map.put("temperature",temperature);// 天气map.put("info",jsonObj.getString("stateDetailed"));// 天气map.put("direct",jsonObj.getString("windDir"));// 风向map.put("power",jsonObj.getString("windPower"));// 风力map.put("humidity",jsonObj.getString("humidity")+"RH");//湿度map.put("wid",jsonObj.getString("state2"));//天气类型map.put("refreshTime",new Date());//刷新时间//将map值放到list集合中list.add(map);//循环list集合,写入参数for (int k = 0; k < list.size(); k++) {weatherinfo.setWeatherId("1");weatherinfo.setTemperature(list.get(k).get("temperature").toString());//温度weatherinfo.setInfo(list.get(k).get("info").toString());//天气weatherinfo.setPower(list.get(k).get("power").toString());//风力weatherinfo.setHumidity(list.get(k).get("humidity").toString());//湿度weatherinfo.setDirect(list.get(k).get("direct").toString());//风向weatherinfo.setWid(list.get(k).get("wid").toString());//天气类型weatherinfo.setRefreshTime(new Date());//刷新时间}//保存写入信息weatherRepository.save(weatherinfo);}}}catch (Exception e){System.out.println(e);}}

在java中在线解析XML文件内容相关推荐

  1. Java中DOM4J解析xml文件浅析

      DOM4J解析它是JDOM的一种智能分支.它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持.XML Schema支持以及用于大文档或流化文档的基于事件的处理.它还提供了构建文档表 ...

  2. java中DOM解析xml文件

    本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件. 首先有一个xml文件: <?xml version=\"1.0\" en ...

  3. java中两个xml文件内容拼接_比较Java中2个XML文档的最佳方法

    慕丝7291255 听起来像是XMLUnit的工作http://www.xmlunit.org/https://github.com/xmlunit例子:public class SomeTest e ...

  4. 【java】jdom解析xml文件

    java中有四种分别解析xml文件.分别是,DOM,SAX,DOM4J,JDOM四种.我第一篇就介绍用Jdom解析XML.本人觉得这四种学习其中一种即可.其余三中解析思想差不了多少.况且这四种介绍优缺 ...

  5. Java中Dom解析XML

    DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息: 这种方式便于对XML节点的添加修改等,而且解析也很方便,然后它比较耗费内 ...

  6. java使用DOM4j解析XML文件

    1.简介 dom4j是java中的XML API,性能优异.功能强大.开放源代码. 也是所有解析XML文件方法中最常用的! 2.代码实操 准备需要j的ar包添加到lib目录下,dom4j-2.1.1. ...

  7. XML格式文件详解及Java解析XML文件内容方法

    XML格式文件详解 1.概述 XML,即可扩展标记语言,XML是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者. ...

  8. java sax解析xml_【转】java使用sax解析xml文件

    从下面这个url搬运.http://hck.iteye.com/blog/1175762 不过程序略有改动. 关于sax(搬自百科) SAX,全称Simple API for XML,既是指一种接口, ...

  9. java在线打开xml文件_java实现简单解析XML文件功能示例

    本文实例讲述了java实现简单解析XML文件功能.分享给大家供大家参考,具体如下: package demo; import java.io.File; import java.io.IOExcept ...

最新文章

  1. 【笔记】opencv图像运算 图像加密
  2. mac里打开隐藏的 library文件夹
  3. 前端:CSS/14/综合案例:传智首页
  4. POJ 1741 Tree 树分治
  5. mysql xtrabackup_mysql备份
  6. 创业负债累累 | 失败了的我还如何翻盘?是天台见! 我的故事还只是从这件事开始...
  7. hive表加载数据的不同方式
  8. 标签和标签选择器、label selector
  9. 医院药品管理系统丨医药商城系统(Java+Web+MySQL)
  10. halcon 深度学习英伟达显卡部署
  11. 解决Cortana显示空白的情况
  12. java安卓模拟器和电脑通信_android模拟器与PC的端口映射
  13. 维基百科著名程序员列表大全
  14. 图片头顶距离顶部百分比怎么修改_PS中,新手该怎么修改图像尺寸?看老师傅们都采用哪些方法?...
  15. linux执行脚本提示文件忙,linux定时执行脚本文件fgo 封号吗
  16. 如何从零起步学习AI
  17. win7 从网络访问此计算机',在里面把guest用户组添加上,大白菜修复win7系统没有权限访问网络资源的办法...
  18. 四轴飞行器资料分享,几个G ,66个文件,如果链接失效请私聊我
  19. 渗透测试的目标、思路
  20. html文件无法访问

热门文章

  1. 程序员的自我修养(一)
  2. 聊一聊Rust的结构体
  3. subl: gitgutter可以让你看到git 改动
  4. 【VBA】给单元格设置背景色
  5. HTML在有序列表方中填充序号,HTML中的有序列表,使用奇数编号
  6. 用DP解决排列组合问题
  7. MFC多语言实现的两种方法
  8. ApolloScape自动驾驶数据集
  9. 解压文件密码是html格式,解压密码
  10. 33 +创意的蓝色网站设计的灵感