2010-09-20 20 views
1

我有這個URL存在XML數據。我必須從URL中提取數據並將其轉儲到DW表中。我正在使用SSIS腳本任務。將XML數據從URL寫入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>

這是我使用它加載到一些對象類型或某事的代碼。但我不知道該怎麼做。

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; 
    } 

回答

1

實際上,您需要在數據流任務中使用腳本源組件。然後使用標準目標組件來插入DW。

這是我實現的示例包。 http://dl.dropbox.com/u/5332312/xRateLoader.zip

+0

我也試過,但基本上我的主要問題是我根本不是c#編碼人員。基於一些在線文章,我花了2天時間寫下這幾行代碼。這就是爲什麼我需要一些幫助來將該XML轉換爲一個數據庫表(或對象變量),其中我將有4列(符號,名稱,比率,反轉)。 – jack 2010-09-20 20:00:02

+0

非常感謝你,UnclePaul。你真棒.. :)我一直在試圖找出將數據加載到表中的方法。現在正在工作。我真的很感謝你的幫助。祝你有美好的一天。 – jack 2010-09-20 20:48:11

0

一旦我做了同樣的事情,通過SSIS包將數據從XLM拉到SQL。

這裏是基本步驟。

  1. 使DTS包
  2. 在數據流中選擇源連接XML和填寫表格abaout源和VXD(結構)文件
  3. 然後使連接目的地
  4. 從源拉專線爲目標

您需要注意VXD是正確的格式,所以SSIS可以預先讀取數據。

在我的辦公室桌面的某個地方,我仍然有該SSIS包的來源,在早上的第一件事情我將嘗試在這裏找到並分享。
另外如果你的XML的來源是公開請在這裏發佈,所以我們可以嘗試爲你做一個。
阿魯你更喜歡使用C#或集成服務來完成這項任務嗎?

相關問題