【问题标题】:SimpleXML node casting to string not workingSimpleXML 节点转换为字符串不起作用
【发布时间】:2013-09-25 11:07:12
【问题描述】:

我正在尝试从此 XML 文件中获取货币汇率:

http://www.bank.lv/vk/xml.xml

我从 HTML 表单中获取货币 ID,之后我必须根据货币汇率找到它。

我使用的是 SimpleXML 和 XPath,我的选择如下:

$current_rate = $rates->xpath("/CRates/Currencies/Currency[ID='" .$source_currency ."']/Rate");

$source_currency 已经过测试并且有效,但是,当将 $current_rate 转换为 (string) 时,我得到了 Array 这个词。

我在 XPath 节点选择或其他地方有错误吗?

【问题讨论】:

    标签: php xml xpath simplexml


    【解决方案1】:
    $current_rate = $rates->xpath("/CRates/Currencies/Currency[ID='" .$source_currency ."']/Rate");
    

    即使只返回1个结果也会返回一个数组,如果你使用print_r你可以看到返回了什么:

    print_r($current_rate);
    

    要访问它,您必须使用:

    if (isset($current_rate))
    {
        echo $current_rate[0];
    }
    

    或者,如果给定的$source_currency 有可能得到超过 1 个结果:

    foreach ($current_rate as $rate)
    {
        echo $rate, "\n";
    }
    

    【讨论】:

    • 谢谢你,工作就像一个魅力!我只是有点困惑,因为我查了一下,每个人似乎都把它直接扔到了弦上。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2020-03-11
    • 2012-04-28
    • 2011-08-28
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多