PHP: 从 XML 字符串中获取数据
PHP: get data from XML string
我在从 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,但感觉不是正确的方法)
虽然我们在这里,但我怎样才能得到 'USD'?
PS:使用的 API 调用是 findCompletedItems - 令我感到奇怪的是,XML 响应根本没有可见的美元。
您传递的不是字符串,而是 class SimpleXMLElement
的对象。最简单的方法是在使用 (string)$price
将其传递给 number_format 之前将其转换为字符串
var_dump 为您提供类型为 SimpleXMLElement which has a __toString 的对象方法,其中 returns 直接在元素中的文本内容因此 echo $price;
将导致 8.0
USD
是 attributes 的一部分,其中 returns 是 SimpleXMLElement 类型的对象。
您可以获得价格和将其转换为 (string)
的货币
$priceAsString = (string)$price;
$currencyIdAsString = (string)$price->attributes()->currencyId;
我在从 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,但感觉不是正确的方法)
虽然我们在这里,但我怎样才能得到 'USD'?
PS:使用的 API 调用是 findCompletedItems - 令我感到奇怪的是,XML 响应根本没有可见的美元。
您传递的不是字符串,而是 class SimpleXMLElement
的对象。最简单的方法是在使用 (string)$price
var_dump 为您提供类型为 SimpleXMLElement which has a __toString 的对象方法,其中 returns 直接在元素中的文本内容因此 echo $price;
将导致 8.0
USD
是 attributes 的一部分,其中 returns 是 SimpleXMLElement 类型的对象。
您可以获得价格和将其转换为 (string)
$priceAsString = (string)$price;
$currencyIdAsString = (string)$price->attributes()->currencyId;