Cake PHP,从xml获取价值

时间:2017-10-19 09:28:23

标签: php xml cakephp

我想从Cake Php中的XML数据中获取特定值。这是我到目前为止所得到的:

在控制器中执行print_r($ output)之后,这就是我所拥有的;

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <xmlArray>
    <numbers>52619657</numbers>
  </xmlArray>
</response>

因为我不知道如何直接从xml获取它,所以我将它转换为控制器中的数组cakePHP doc提及。

$xmlArray = Xml::toArray(Xml::build($out));

print_r的结果($ xmlArray);是

Array
(
    [response] => Array
        (
            [xmlArray] => Array
                (
                    [numbers] => 52619657
                )
        )
)

我试图得到数字&#39; 52619657&#39;。所以我的尝试是

print_r ($xmlArray['numbers']);

但它不起作用(错误是Undefined index :)。所以我尝试使用像here这样的IN方法,但实际上我不知道该怎么做。如何获得号码&#39; 52619657&#39;?在蛋糕PHP。

非常感谢

1 个答案:

答案 0 :(得分:2)

我不明白你为什么需要第三方库,比如Cake的XML类。您可以使用SimpleXML轻松完成此任务:

$response = simplexml_load_string($output);
echo $response->xmlArray->numbers;

您的方法无效,因为您的$xmlArray是嵌套数组,而$xmlArray['numbers']会尝试从第一级获取数字。您需要使用$xmlArray['response']['xmlArray']['numbers'];了解如何读取数组是基本知识,因此请考虑在PHP手册中重读这一部分。