2016-10-28 42 views
0

我想從this website獲得某些貨幣的匯率,並將這些數字用於我的貨幣換算器,因爲它們每天都會更新。 這裏是計算器jsfiddle網絡/ ems3bh7t /。從Javascript中的.xml網站獲取數字

我有選擇器選項中的貨幣,它們的值是「歐元,美元等」,就像他們在上面的匯率網站linked

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name=currencyOutput id=currencyOutput> 
 
\t <option id=currency1 label="EUR (Euro)" value="EUR">EUR</option> 
 
\t <option id=currency2 label="USD (US-Dollar)" value="USD">USD</option> 
 
\t <option id=currency3 label="GBP (British Pound)" value="GBP">GBP</option> 
 
\t <option id=currency4 label="YEN (Japanischer Yen)" value="YEN">YEN</option> 
 
</select>

我認爲這樣做是通過某種方式尋找所選擇的選項在網站價值,然後把後進入,可用於計算的變量數量的最佳途徑。

<Cube currency="USD" rate="1.0927"/>" 
 
<Cube currency="JPY" rate="114.39"/> 
 
<Cube currency="BGN" rate="1.9558"/> 
 
<Cube currency="CZK" rate="27.022"/> 
 
<Cube currency="DKK" rate="7.4376"/>

我會很感激任何幫助或教程的鏈接。我已經完成了30分鐘的谷歌搜索和堆棧搜索,並沒有發現任何解釋過的內容,甚至是我的同一主題。

感謝您閱讀,如果您需要更多信息或完整的html/js程序,我可以立即添加它。

+0

谷歌: 「jQuery的讀取外部XML」 – pee2pee

+0

您使用的Windows操作系統? – Jobin

+0

是我在@Jobin –

回答

0

使用Ajax或服務器獲取數據,然後簡單地把作爲文檔標記:

//Same origin problem 
 
$.ajax({ 
 
    url: 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml', 
 
    complete: function(res) { 
 
    console.log("Response from AJAX attempt:", res.statusText); 
 
    }, 
 
    dataType: 'text' 
 
}); 
 

 
//Fiction response 
 
var res = "<gesmes:Envelope xmlns:gesmes=\"http://www.gesmes.org/xml/2002-08-01\" xmlns=\"http://www.ecb.int/vocabulary/2002-08-01/eurofxref\">\n<gesmes:subject>Reference rates</gesmes:subject>\n<gesmes:Sender>\n<gesmes:name>European Central Bank</gesmes:name>\n</gesmes:Sender>\n<Cube>\n<Cube time='2016-10-27'>\n<Cube currency='USD' rate='1.0927'/>\n<Cube currency='JPY' rate='114.39'/>\n<Cube currency='BGN' rate='1.9558'/>\n<Cube currency='CZK' rate='27.022'/>\n<Cube currency='DKK' rate='7.4376'/>\n<Cube currency='GBP' rate='0.89158'/>\n<Cube currency='HUF' rate='309.23'/>\n<Cube currency='PLN' rate='4.3292'/>\n<Cube currency='RON' rate='4.5038'/>\n<Cube currency='SEK' rate='9.8150'/>\n<Cube currency='CHF' rate='1.0838'/>\n<Cube currency='NOK' rate='8.9858'/>\n<Cube currency='HRK' rate='7.5010'/>\n<Cube currency='RUB' rate='68.6064'/>\n<Cube currency='TRY' rate='3.3845'/>\n<Cube currency='AUD' rate='1.4339'/>\n<Cube currency='BRL' rate='3.4261'/>\n<Cube currency='CAD' rate='1.4605'/>\n<Cube currency='CNY' rate='7.4082'/>\n<Cube currency='HKD' rate='8.4741'/>\n<Cube currency='IDR' rate='14240.57'/>\n<Cube currency='ILS' rate='4.1989'/>\n<Cube currency='INR' rate='73.0135'/>\n<Cube currency='KRW' rate='1249.16'/>\n<Cube currency='MXN' rate='20.4611'/>\n<Cube currency='MYR' rate='4.5846'/>\n<Cube currency='NZD' rate='1.5296'/>\n<Cube currency='PHP' rate='52.985'/>\n<Cube currency='SGD' rate='1.5211'/>\n<Cube currency='THB' rate='38.343'/>\n<Cube currency='ZAR' rate='15.1421'/>\n</Cube>\n</Cube>\n</gesmes:Envelope>"; 
 
//Fiction response 
 

 
var returnString = '<select name="currencyOutput" id="currencyOutput">' + "\n"; 
 

 
jQuery(res).find("Cube").each(function(i, el) { 
 
    var curr = jQuery(el).attr("currency"); 
 

 
    if (curr != void 0) { 
 
    returnString += '<option id="currency' + i + '" value="' + curr + '">' + curr + '</option>' + "\n"; 
 
    } 
 

 
}) 
 

 
returnString += '</select>'; 
 
jQuery("#output").html(returnString); 
 
console.log(returnString)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="output"></div>

+0

非常感謝你的回覆,但它看起來像你剛剛從網站上覆制文本,有沒有辦法在程序啓動時導入網站數據?所以匯率是最新的。 @Emil S.Jørgensen –

+0

我似乎無法通過加載它。 AJAX。它只會在Stackoverflow或其頁面上允許「同源」。您可以通過請求服務器然後通過AJAX來輕鬆解決此問題。 –