static void Jimmy_weatherForecast(Args _args)
{
XmlDocument doc = new XmlDocument();
XmlNamespaceManager ns;
XmlNodeList nodes;
XmlNode node;
//AddressZipCode addresszipCode;
container day(str _day)
{
;
switch(_day)
{
case 'Mon' : return [1,'Monday'];
case 'Tue' : return [2,'Tuesday'];
case 'Wed' : return [3,'Wednesday'];
case 'Thu' : return [4,'Thursday'];
case 'Fri' : return [5,'Friday'];
case 'Sat' : return [6,'Saturday'];
case 'Sun' : return [7,'Sunday'];
Default : return connull();
}
}
;
//addresszipCode = _args.record();
doc.Load("http://xml.weather.yahoo.com/forecastrss?p= CHXX0123&u=c" );// +CHXX0037 UKXX0085 CHXX0123
//addresszipCode.ZipCode +’&u=c’);
//东莞 : http://hk.weather.yahoo.com/china/guangdong/shilong-2162460/
// Set up namespace manager for XPath
ns = new XmlNamespaceManager(doc.nameTable());
ns.AddNamespace("yweather", "http://xml.weather.yahoo.com/ns/rss/1.0");
// Get forecast with XPath
nodes = doc.SelectNodes("//rss/channel/item/yweather:forecast", ns);
node = nodes.nextNode();
setprefix("Weather forecast");
while (node)
{
info("-----------------------------------------------------");
info(conpeek(day(node.attributes().getNamedItem("day").InnerText()),2));
info("-----------------------------------------------------");
info( node.attributes().getNamedItem("text").InnerText());
info('Min :' + node.attributes().getNamedItem("low").InnerText());
info('Max :' + node.attributes().getNamedItem("high").InnerText());
if(dayofwk(today()) == conpeek(day(node.attributes().getNamedItem("day").InnerText()),1))
{
info('Current :' + node.attributes().getNamedItem("code").InnerText());
}
else
{
info('Current : NA');
}
node = nodes.nextNode();
}
}