SQL2005CLR函数扩展-解析天气服务的实现

  次阅读 作者:智能小宝 来源:互联网 2016-03-01 10:10 我要评论(0)

我们可以用CLR获取网络服务 来显示到数据库自定函数的结果集中,比如163的天气预报http://news.163.com/xml/weather.xml 他的这个xml结果的日期是不正确的,但这个我们暂不讨论。从这个xml获取天气的CLR代码如下,用WebClient访问一下就可以了。然后通过Dom对象遍历节点属性返回给结果集。

--------------------------------------------------------------------------------

复制代码 代码如下:

using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

using System.Collections;

using System.Collections.Generic;

using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions

{

[SqlFunction (TableDefinition = "city nvarchar(100),datenvarchar(100),general nvarchar(100),temperature nvarchar(100),windnvarchar(100)" , Name = "GetWeather" , FillRowMethodName = "FillRow" )]

public static IEnumerable GetWeather()

{

System.Collections.Generic.List <Item > list = GetData();

return list;

}

public static void FillRow(Object obj, out SqlString city, outSqlString date, out SqlString general, out SqlString temperature, outSqlString wind)

{

Item data = (Item )obj;

city = data.city;

date = data.date;

general = data.general;

temperature = data.temperature;

wind = data.wind;

}

class Item

{

public string city;

public string date;

public string general;

public string temperature;

public string wind;

}

static System.Collections.Generic.List <Item > GetData()

{

System.Collections.Generic.List <Item > ret = new List <Item >();

//try

//{

string url = "http://news.163.com/xml/weather.xml" ;

System.Net.WebClient wb = new System.Net.WebClient ();

byte [] b = wb.DownloadData(url);

string data = System.Text.Encoding .Default.GetString(b);

System.Xml.XmlDocument doc = new System.Xml.XmlDocument ();

doc.LoadXml(data);

foreach (System.Xml.XmlNode node in doc.ChildNodes[1])

{

string city = GetXMLAttrib(node, "name" );

foreach (System.Xml.XmlNode subnode in node.ChildNodes)

{

Item item = new Item ();

item.city = city;

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...