2013-09-25 60 views
1

我似乎無法使用XSD和XML數據綁定向導訪問在線XML文件內容。我需要每天更新一個數據庫表,使用聯機XML中的所有請求貨幣。 我使用Delphi XE和XSD位於: http://www.bnr.ro/nbrfxrates.xsd 和XML是這樣的:http://www.bnr.ro/files/xml/years/nbrfxrates2013.xmldelphi使用XSD處理XML

於是我下載了XSD,並與XML數據綁定向導處理它。這導致了單位nbrfxrates。

我需要能夠在某一特定日期訪問率特定貨幣,一些功能例如像

function getMyRate(date,currency):double; 
begin 
... 
end; 

在那裏我可以提供一個日期和貨幣,並從XML獲得價值我不知道該怎麼做。

XML結構看起來很簡單,但我堅持從德爾福訪問它... 請幫助我。

回答

1

你只需要加載你的文件,並使用提供的訪問器訪問節點,這些訪問器基本上都是Delphi標準類,有一些魔法來訪問底層的DOM。

這是幾秒鐘擺弄你的文件後得到的。

procedure TForm1.Button1Click(Sender: TObject); 
var 
    obj: IXMLDataSet; 
begin 
    obj := LoadDataSet('D:\Downloads\nbrfxrates2013.xml'); 
    ShowMessage(obj.Body.Cube.Items[0].Date); 
end; 
+0

有沒有什麼辦法可以直接在網上直接訪問XML而無需先下載它?它位於http://www.bnr.ro/files/xml/years/nbrfxrates2013.xml – user1137313

+2

沒有首先訪問遠程文件而沒有下載它們。您認爲您的網絡瀏覽器如何管理在網絡上顯示任何內容? –

+0

從網上下載文件很容易。在你的表單中放置一個Indy HTTP組件,添加'f:= TFileStream.Create('D:\ Downloads \ nbrfxrates2013.xml',fmCreate); IdHTTP1.Get('http://www.bnr.ro/files/xml/years/nbrfxrates2013.xml',f); f.Free;'在我提供的代碼之前,您已設置。當然,您需要添加適當的異常和錯誤處理。 –