PHP:从XML字符串获取数据
从eBay API字符串获取数据时遇到一个简单的问题。我想将数字格式化为2位数8.0>8.00 这个很好用PHP:从XML字符串获取数据,php,xml,ebay-api,Php,Xml,Ebay Api,从eBay API字符串获取数据时遇到一个简单的问题。我想将数字格式化为2位数8.0>8.00 这个很好用 echo $price; // output: 8.0 但是 echo number_format($price, 2); // output: (nothing) var_垃圾场告诉我为什么 var_dump($price); // output: object(SimpleXMLElement)#19 (2) { ["@attributes"]=> array(1
echo $price; // output: 8.0
但是
echo number_format($price, 2); // output: (nothing)
var_垃圾场告诉我为什么
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。您传递的不是字符串,而是类的对象
SimpleXMLElement
。最简单的方法是将其转换为字符串,然后使用(string)$price
将其传递为number\u格式。var\u dump为您提供了一个类型的对象,该对象有一个方法返回直接位于元素中的文本内容,因此echo$price代码>将导致8.0
USD
是返回SimpleXMLElement类型的对象的一部分
您可以将价格和货币转换为(字符串)
谢谢这正是我想要的。然而,我真的不明白为什么我可以解析'8.0'而不是'USD'。
$priceAsString = (string)$price;
$currencyIdAsString = (string)$price->attributes()->currencyId;