如何从API xml获取节点值

时间:2015-07-14 06:23:01

标签: php xml xml-parsing

我正试图从API获得当前的汇率。代码如下

<?php

$return = file_get_contents("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22AEDUSD%22%29&env=store://datatables.org/alltableswithkeys");

$xml=simplexml_load_string($return) or die("Error: Cannot create object");

echo '<pre>'; print_r($xml);

?>

上面的代码提供了XML

SimpleXMLElement Object
(
    [results] => SimpleXMLElement Object
        (
            [rate] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [id] => AEDUSD
                        )

                    [Name] => AED/USD
                    [Rate] => 0.2722
                    [Date] => 7/14/2015
                    [Time] => 7:17am
                    [Ask] => 0.2723
                    [Bid] => 0.2722
                )

        )

)

我想获得Rate节点值[Rate] => 0.2722我在下面尝试过

<?php
    echo '<pre>'; print_r($xml->results->rate->Rate);
?>

它给出如下结果,

SimpleXMLElement Object
(
    [0] => 0.2722
)

如何摆脱对象并取值?

1 个答案:

答案 0 :(得分:1)

尝试阅读此问题how to get value of simple xml object

将其投射到字符串

echo '<pre>'; print_r((string)$xml->results->rate->Rate);