我正在用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>