MasterGerold
@MasterGerold

Как вытащить атрибут из XML?

Доброго времени суток! Хочу вытащить атрибуты вот с такого файла:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<exchangerates>
	<row>
		<exchangerate ccy="USD" base_ccy="UAH" buy="26.00000" sale="27.47253"/>
	</row>
	<row>
		<exchangerate ccy="EUR" base_ccy="UAH" buy="27.20000" sale="28.81844"/>
	</row>
	<row>
		<exchangerate ccy="RUR" base_ccy="UAH" buy="0.41000" sale="0.46000"/>
	</row>
	<row>
		<exchangerate ccy="BTC" base_ccy="USD" buy="750.0714" sale="829.0262"/>
	</row>
</exchangerates>

Есть такая конструкция:
$url = "https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=11";
$xml = simplexml_load_file($url);

Конкретно мне надо только первые три row (без BTC).
Когда пытаюсь вытащить значение вот так:
foreach ($xml->row[0] as $key) {
	echo $key['buy'];
}

Выводит то что мне нужно, но выводит только с первого row. Что бы проделать так с остальными полями нужно ещё три раза написать foreach только менять значения "$xml->row[тут]". Пробовал сделать так:
$i = 0;
foreach ($xml->row[$i] as $key) {
	$key['buy'];
	$i++;
}

Вывода нету никакого, а если быть точнее то сервер выдает ошибку "HTTP ERROR 500". И когда пытаюсь на прямую достучатся к атрибуту echo $xml->row[0][0]['buy'] тоже ничего не получается. Подскажите как правильно будет их вытащить.
Заранее благодарен!
  • Вопрос задан
  • 501 просмотр
Решения вопроса 1
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Пример "высосанный из пальца":
<?php

$xml = simplexml_load_file("xml.xml");

foreach ($xml->row as $row) {
    foreach ($row as $exchangerate) {
        var_dump((float)$exchangerate->attributes()['buy']);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
682e717d4d504d17b5d74364b1da648e.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы