PHP: получить данные из строки XML

У меня есть простая проблема получения данных из строки API eBay. Я хочу отформатировать цифры в 2 цифры 8.0> 8.00

Это отлично работает

echo $price;  // output: 8.0

Но…

echo number_format($price, 2);  // output:   (nothing)

Var_dump говорит мне, почему …

var_dump($price);
// output: object(SimpleXMLElement)#19 (2) { ["@attributes"]=> array(1) { ["currencyId"]=> string(3) "USD" } [0]=> string(3) "8.0" }

Как мне получить 8.0 в 8.00 (я знаю, что могу использовать REGEX, но это не совсем правильно)

И пока мы здесь, как я могу получить «доллар»?

PS: используемый вызов API — это findCompletedItems — и, как ни странно, в ответе XML вообще нет видимых долларов.

0

Решение

Var_dump дает вам объект типа SimpleXMLElement который имеет __нанизывать метод, который возвращает текстовое содержимое, которое находится непосредственно в элементе, так echo $price; приведет к 8.0

USD является частью атрибуты который возвращает объект типа SimpleXMLElement.

Вы можете получить цену и валюту, приведя ее к (string)

$priceAsString = (string)$price;
$currencyIdAsString = (string)$price->attributes()->currencyId;
1

Другие решения

Вы не передаете строку, вы передаете объект класса SimpleXMLElement, Самое простое, что вы можете сделать, это привести его к строке перед передачей в number_format, используя (string)$price

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector