Lấy giá vàng SJC và tỷ giá Vietcombank qua XML

Nếu bạn đang muốn lấy giá vàng tại SJC hoặc bạn muốn lấy tỷ giá ngoại tệ của Vietcombank thì bạn có thể áp dụng cách lấy thông tin thông qua XML.

Tòa nhà Vietcombank

Trong PHP có hỗ trợ class SimpleXMLElement mà bạn có thể sử dụng để đọc thông tin XML từ tập tin, từ đường dẫn trên web hoặc từ string XML bất kỳ. Bài viết này sẽ gợi ý cho bạn cách lấy thông tin tỷ giá vàng từ SJC và lấy tỷ giá ngoại tệ từ ngân hàng Vietcombank. Tương tự như vậy bạn cũng có thể áp dụng cho các dịch vụ khác mà có chia sẻ nguồn XML cho bạn lấy thông tin.

Lấy tỷ giá vàng SJC

Để lấy được tỷ giá vàng từ SJC thì bạn phải biết được đường dẫn XML của nó trước:

[code]http://www.sjc.com.vn/xml/tygiavang.xml[/code]

Sau khi đã có được đường dẫn XML thì bạn sử dụng hàm như bên dưới để lấy thông tin:

[php]
$url = ‘http://www.sjc.com.vn/xml/tygiavang.xml’;
$xml = simplexml_load_file($url);
echo ‘<pre>’;
print_r($xml);
echo ‘</pre>’;
[/php]

Bạn sao chép đoạn code trên và bỏ vào tập tin PHP bất kỳ thì bạn sẽ nhận được kết quả trả về như sau:

[code]
SimpleXMLElement Object
(
[title] => Cong ty TNHH MTV Vang bac da quy Sai gon : Bang Ty gia vang SJC
[url] => http://www.sjc.com.vn/
[ratelist] => SimpleXMLElement Object
(
[@attributes] => Array
(
[updated] => 03:56:01 PM 21/06/2016
[unit] => ngàn đồng/lượng
)

[city] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Hồ Chí Minh
)

[item] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.060
[sell] => 34.360
[type] => Vàng SJC 1L
)

)

[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.060
[sell] => 34.360
[type] => Vàng nhẫn SJC 99,99 5p,1c,2c,5c
)

)

[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 33.760
[sell] => 34.360
[type] => Vàng nữ trang 99,99%
)

)

[3] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 33.320
[sell] => 34.020
[type] => Vàng nữ trang 99%
)

)

[4] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 24.723
[sell] => 25.923
[type] => Vàng nữ trang 75%
)

)

[5] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 18.984
[sell] => 20.184
[type] => Vàng nữ trang 58,3%
)

)

[6] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 13.280
[sell] => 14.480
[type] => Vàng nữ trang 41,7%
)

)

)

)

[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Hà Nội
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.060
[sell] => 34.380
[type] => Vàng SJC
)

)

)

[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Đà Nẵng
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.060
[sell] => 34.380
[type] => Vàng SJC
)

)

)

[3] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Nha Trang
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.050
[sell] => 34.380
[type] => Vàng SJC
)

)

)

[4] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Cà Mau
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.060
[sell] => 34.380
[type] => Vàng SJC
)

)

)

[5] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Buôn Ma Thuột
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.050
[sell] => 34.380
[type] => Vàng SJC
)

)

)

[6] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Bình Phước
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.030
[sell] => 34.390
[type] => Vàng SJC
)

)

)

[7] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Huế
)

[item] => SimpleXMLElement Object
(
[@attributes] => Array
(
[buy] => 34.060
[sell] => 34.380
[type] => Vàng SJC
)

)

)

)

)

)
[/code]

Trong đoạn code bên trên bạn sẽ sử dụng hàm simplexml_load_file để lấy thông tin từ đường dẫn XML.

Lấy giá vàng SJC

Thông qua giá trị trả về, bạn duyệt từng nội dung bên trong và xuất dưới dạng HTML cho phù hợp với layout trên website của bạn.

Lấy tỷ giá ngoại tệ Vietcombank

Tương tự như hàm lấy tỷ giá vàng từ SJC, nếu bạn muốn lấy tỷ giá ngoại tệ từ ngân hàng Vietcombank thì bạn sẽ làm như sau:

[php]
$url = ‘https://www.vietcombank.com.vn/exchangerates/ExrateXML.aspx’;
$xml = simplexml_load_file($url);
echo ‘<pre>’;
print_r($xml);
echo ‘</pre>’;
[/php]

Kết quả trả về bạn sẽ nhận được một đối tượng SimpleXMLElement như sau:

[code]
SimpleXMLElement Object
(
[DateTime] => 6/21/2016 8:53:11 PM
[Exrate] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => AUD
[CurrencyName] => AUST.DOLLAR
[Buy] => 16550.73
[Transfer] => 16650.63
[Sell] => 16799.43
)

)

[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => CAD
[CurrencyName] => CANADIAN DOLLAR
[Buy] => 17187.98
[Transfer] => 17344.08
[Sell] => 17569.21
)

)

[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => CHF
[CurrencyName] => SWISS FRANCE
[Buy] => 22971.54
[Transfer] => 23133.47
[Sell] => 23340.21
)

)

[3] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => DKK
[CurrencyName] => DANISH KRONE
[Buy] => 0
[Transfer] => 3348.21
[Sell] => 3453.28
)

)

[4] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => EUR
[CurrencyName] => EURO
[Buy] => 25084.73
[Transfer] => 25160.21
[Sell] => 25385.06
)

)

[5] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => GBP
[CurrencyName] => BRITISH POUND
[Buy] => 32512.61
[Transfer] => 32741.8
[Sell] => 33034.4
)

)

[6] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => HKD
[CurrencyName] => HONGKONG DOLLAR
[Buy] => 2835.93
[Transfer] => 2855.92
[Sell] => 2892.99
)

)

[7] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => INR
[CurrencyName] => INDIAN RUPEE
[Buy] => 0
[Transfer] => 329.61
[Sell] => 342.56
)

)

[8] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => JPY
[CurrencyName] => JAPANESE YEN
[Buy] => 210.53
[Transfer] => 212.66
[Sell] => 214.56
)

)

[9] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => KRW
[CurrencyName] => SOUTH KOREAN WON
[Buy] => 0
[Transfer] => 19.35
[Sell] => 19.99
)

)

[10] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => KWD
[CurrencyName] => KUWAITI DINAR
[Buy] => 0
[Transfer] => 73954.48
[Sell] => 76858.95
)

)

[11] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => MYR
[CurrencyName] => MALAYSIAN RINGGIT
[Buy] => 0
[Transfer] => 5495.98
[Sell] => 5567.32
)

)

[12] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => NOK
[CurrencyName] => NORWEGIAN KRONER
[Buy] => 0
[Transfer] => 2660.6
[Sell] => 2744.09
)

)

[13] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => RUB
[CurrencyName] => RUSSIAN RUBLE
[Buy] => 0
[Transfer] => 315.7
[Sell] => 386.2
)

)

[14] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => SAR
[CurrencyName] => SAUDI RIAL
[Buy] => 0
[Transfer] => 5931.98
[Sell] => 6164.95
)

)

[15] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => SEK
[CurrencyName] => SWEDISH KRONA
[Buy] => 0
[Transfer] => 2679.79
[Sell] => 2747.34
)

)

[16] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => SGD
[CurrencyName] => SINGAPORE DOLLAR
[Buy] => 16421.83
[Transfer] => 16537.59
[Sell] => 16752.25
)

)

[17] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => THB
[CurrencyName] => THAI BAHT
[Buy] => 621.53
[Transfer] => 621.53
[Sell] => 647.48
)

)

[18] => SimpleXMLElement Object
(
[@attributes] => Array
(
[CurrencyCode] => USD
[CurrencyName] => US DOLLAR
[Buy] => 22260
[Transfer] => 22260
[Sell] => 22330
)

)

)

[Source] => Joint Stock Commercial Bank for Foreign Trade of Vietnam – Vietcombank
)
[/code]

Qua kết quả trả về bên trên, bạn hoàn toàn có thể lấy thông tin và xuất ra dưới dạng HTML cho người dùng dễ nhìn.

Lấy tỷ giá ngoại tệ Vietcombank

Như vậy, qua bài viết này bạn đã có cách để lấy thông tin bất kỳ từ các nguồn chia sẻ XML, không những chỉ lấy tỷ giá mà bạn còn có thể lấy thời tiết, giá cả thị trường,… Chúc bạn thành công.