Simplexml元素不会存储到PHP变量

时间:2014-08-05 22:01:18

标签: php xml simplexml

我正在用PHP编写测试脚本。我在simplexml对象中从服务器返回XML。我一直在解析最好的,一些使用foreach循环,一些直接来自元素。这一个响应只是不允许我将值存储到PHP变量。

这是具体的回应

 <xml>
   <status>1</status>
   <count>1</count>
   <device id="72220">
     <udid>99000146864366</udid>
     <devicename>Sprint Wwe</devicename>
     <created>2014-07-01 13:22:27</created>
   </device>
</xml>

这是我的解析块

$cRes = $proxy->queryXML($section, 'retrieve', array("device_id" => "all"));

if($cRes->status == '1'){
    $dvcID = $cRes->device[0]['id']->__toString();
    $devicename = $cRes->device[0]->devicename->__toString();
    if(empty($dvcID)) return $do;//
    if(empty($devicename)) return $do2;//hacked break points
    $res = array("deviceid" => $dvcID, 
    "devicename" => $devicename);
    return $res;
}

目标是在响应中列出的任意数量的设备中仅从第一个设备中提取id和devicename。 php变量似乎不是空的,因为它们不会在我的黑客断点上返回(使用notepad ++)。我已经尝试将它们转换为(字符串),但它们仍然显示没有数据,但不会失败empty()测试。将id转换为int将其转换为0.我在这里缺少什么?

服务器的错误响应如下

Last Query:Array
(
    [device_id] =>
    [devicename] =>
    [return_type] => xml
    [section] => devices
    [action] => update
    [api_key] => xxxxxxxxxxxxxxxxxx
)

Last Response<?xml version="1.0" encoding="utf-8"?>
<xml>
<status>0</status>
<error code="410">Required device POST variables not supplied</error>
</xml>

0 个答案:

没有答案