在SSIS脚本任务中将URL数据从URL写入对象

时间:2010-09-20 18:28:02

标签: xml ssis object task

我有这个有XML数据的URL。我必须从URL中提取该数据并将其转储到DW表中。我正在使用SSIS脚本任务。

这就是数据的样子:

-<currency>

<csymbol>AED</csymbol>

<cname>United Arab Emirates Dirhams</cname>

<crate>3.6732001305</crate>

<cinverse>0.2722421770</cinverse>

</currency>

−<currency>

<csymbol>AFN</csymbol>

<cname>Afghanistan Afghanis</cname>

<crate>44.0000000000</crate>

<cinverse>0.0227272727</cinverse>

</currency>

−<currency>

<csymbol>ALL</csymbol>

<cname>Albania Leke</cname>

<crate>104.4100000001</crate>

<cinverse>0.0095776267</cinverse>

</currency>

这是我用来将它加载到某些Object类型或其他东西的代码。但我不知道该怎么做。

public void Main()
{
    String URLString = "http://www.xe.com/dfs/datafeed2.cgi?beeline";
    XmlDocument doc = new XmlDocument();
    XmlTextReader reader = new XmlTextReader(URLString);
    doc.Load(reader);

    XmlNodeList currencynodes = doc.SelectNodes("currency");
    foreach(XmlNode currency in currencynodes)
    {
        XmlNode csymbol = currency.SelectSingleNode("csymbol");
        string csymbolvalue = csymbol.Value;

        XmlNode cname = currency.SelectSingleNode("cname");
        string cnamevalue = cname.Value;

        XmlNode crate = currency.SelectSingleNode("crate");
        string cratevalue = crate.Value;

        XmlNode cinverse = currency.SelectSingleNode("cinverse");
        string cinversevalue = cinverse.Value;

        Dts.Variables["User::oCurrencyConversion"].Value = csymbol.Value;
    }

2 个答案:

答案 0 :(得分:1)

实际上,您需要在数据流任务中使用脚本源组件。然后使用标准目标组件将插入到DW中。

这是我实施的示例包。 http://dl.dropbox.com/u/5332312/xRateLoader.zip

答案 1 :(得分:0)

一旦我做了同样的事情,就可以通过SSIS包将数据从XLM拉到SQL。

这是基本步骤。

  1. 制作DTS包
  2. 在DataFlow中选择源连接XML并填写表格以及源代码和VXD(结构)文件
  3. 然后进行目标连接
  4. 从源到目的地拉绿线
  5. 您需要注意VXD格式正确,因此SSIS可以准备好读取数据。

    在我办公室桌面的某个地方,我仍然有SSIS包的来源,早上第一件事我会尝试找到并在这里分享。
    另外如果您的XML源是公开的,请在此处发布,以便我们为您尝试制作一个 Aru您更喜欢在C#或集成服务中执行此任务吗?