在java中在线解析XML文件内容
这里的天气属性有很多,可以根据自己的需求获取天气属性
这里用到了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文件内容相关推荐
- Java中DOM4J解析xml文件浅析
DOM4J解析它是JDOM的一种智能分支.它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持.XML Schema支持以及用于大文档或流化文档的基于事件的处理.它还提供了构建文档表 ...
- java中DOM解析xml文件
本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件. 首先有一个xml文件: <?xml version=\"1.0\" en ...
- java中两个xml文件内容拼接_比较Java中2个XML文档的最佳方法
慕丝7291255 听起来像是XMLUnit的工作http://www.xmlunit.org/https://github.com/xmlunit例子:public class SomeTest e ...
- 【java】jdom解析xml文件
java中有四种分别解析xml文件.分别是,DOM,SAX,DOM4J,JDOM四种.我第一篇就介绍用Jdom解析XML.本人觉得这四种学习其中一种即可.其余三中解析思想差不了多少.况且这四种介绍优缺 ...
- Java中Dom解析XML
DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息: 这种方式便于对XML节点的添加修改等,而且解析也很方便,然后它比较耗费内 ...
- java使用DOM4j解析XML文件
1.简介 dom4j是java中的XML API,性能优异.功能强大.开放源代码. 也是所有解析XML文件方法中最常用的! 2.代码实操 准备需要j的ar包添加到lib目录下,dom4j-2.1.1. ...
- XML格式文件详解及Java解析XML文件内容方法
XML格式文件详解 1.概述 XML,即可扩展标记语言,XML是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者. ...
- java sax解析xml_【转】java使用sax解析xml文件
从下面这个url搬运.http://hck.iteye.com/blog/1175762 不过程序略有改动. 关于sax(搬自百科) SAX,全称Simple API for XML,既是指一种接口, ...
- java在线打开xml文件_java实现简单解析XML文件功能示例
本文实例讲述了java实现简单解析XML文件功能.分享给大家供大家参考,具体如下: package demo; import java.io.File; import java.io.IOExcept ...
最新文章
- 【笔记】opencv图像运算 图像加密
- mac里打开隐藏的 library文件夹
- 前端:CSS/14/综合案例:传智首页
- POJ 1741 Tree 树分治
- mysql xtrabackup_mysql备份
- 创业负债累累 | 失败了的我还如何翻盘?是天台见! 我的故事还只是从这件事开始...
- hive表加载数据的不同方式
- 标签和标签选择器、label selector
- 医院药品管理系统丨医药商城系统(Java+Web+MySQL)
- halcon 深度学习英伟达显卡部署
- 解决Cortana显示空白的情况
- java安卓模拟器和电脑通信_android模拟器与PC的端口映射
- 维基百科著名程序员列表大全
- 图片头顶距离顶部百分比怎么修改_PS中,新手该怎么修改图像尺寸?看老师傅们都采用哪些方法?...
- linux执行脚本提示文件忙,linux定时执行脚本文件fgo 封号吗
- 如何从零起步学习AI
- win7 从网络访问此计算机',在里面把guest用户组添加上,大白菜修复win7系统没有权限访问网络资源的办法...
- 四轴飞行器资料分享,几个G ,66个文件,如果链接失效请私聊我
- 渗透测试的目标、思路
- html文件无法访问