使用xmlstarlet分析处理xml的数据

现有需求:有了黑莓手机,装了smartmail,可以收邮件,于是想把每天的天气数据用vps自动发送到邮箱里,这样手机自动去收取,就可以了解最近的天气。

第一步获取天气数据:最近打算把所有google能办到的事都让google来办,所以现在用的是google的天气数据,http://www.google.com/ig/api?weather=CHANGZHOU&hl=zh-cn

API有了,是xml,接下来就是如何把xml的数据搞下来

于是找到了xmlstarlet – command line XML toolkit 分析xml的命令行工具

#apt-get install xmlstarlet

这里用curl得到一个xml文件,可以用xml处理调用里面的数据,但不能得到中文,这让我要想其他办法,后来网上找到了资料,后面加 &ie=utf-8&oe=utf-8,如下

curl -g “http://www.google.com/ig/api?weather=changzhou&hl=zh-cn&ie=utf-8&oe=utf-8”

参考:http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.pdf 一步步学习,这要花上几个小时。

学了半天,处理后的xml数据,中文还是出不来。又回到先用英文来搞,专心把pdf里的命令实践。得到的xml

用如下命令查得结构

xmlstarlet el -v weather.xml

从手册上得到的知识处理

xmlstarlet sel -T -t -m /xml_api_reply/weather/current_conditions/condition -v "@data" weather.xml

这时显示Mostly Cloudy,至此可以得到需要的当日的数据了,只是很烦,而且没有中文。

使用xmlstarlet分析处理xml的数据》上有3条评论

  1. Hi
    中文问题解决了么。
    我也出现
    channel=”文字直播”
    中文被转码了。

  2. 这个没有解决
    后来在朋友的帮助下用python处理xml,显示中文没有问题.

发表评论

电子邮件地址不会被公开。 必填项已用*标注