PHP:从XML字符串中获取数据

时间:2018-05-20 03:22:07

标签: php xml ebay

我从eBay API字符串中获取数据时遇到了一个简单的问题。我想将数字格式化为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响应根本没有可见的USD。

2 个答案:

答案 0 :(得分:1)

var_dump为您提供了一个SimpleXMLElement类型的对象,该对象具有__toString方法,该方法返回直接在元素中的文本内容,因此echo $price;将导致8.0

USDattributes的一部分,它返回SimpleXMLElement类型的对象。

您可以将价格和货币转换为(string)

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

答案 1 :(得分:0)

您没有传入字符串,而是传递了类SimpleXMLElement的对象。您可以做的最简单的事情是将其转换为字符串,然后使用(string)$price将其传递给number_format