我从服务器收到XML响应。这就是回应。
<response>
<response_code>Success</response_code>
</response>
我将此响应存储在变量$response
中。对于失败还有另一个类似的响应。因此,我只想检查节点值是Success
还是Failure
。
我是做什么的
$xmlString =simplexml_load_string($response) or die("Error: Cannot create object");
$resp_code = (string)$xmlString->response_code;
if($resp_code == 'Success'){
echo 'Successfully completed';
}
else{
echo 'not done';
}
但是if条件不起作用。我猜这里的$resp_code
不是字符串。
我也尝试了$xmlString->response_code->__toString();
,但是没有用。
我想念什么?有人请帮忙。
P.S:如果有帮助,我正在Laravel中进行此操作。
答案 0 :(得分:1)
测试代码后,它可以完美运行。
simplexml_load_string()
函数将给定的响应解析为一个对象,并使用类型转换将您的输出确定为字符串。
如果您继续获得除成功以外的其他结果,则可能是因为服务器给出的响应不成功,或者可能是大小写字母混合使用。
尝试编辑部分代码
if(strtolower($resp_code) == 'success'){
echo 'Successfully completed';
} else{
echo 'not done';
}
应该把这种性质的任何东西混在一起。
答案 1 :(得分:0)
或者,
如果您想摆脱PHP复杂的xml处理方法,可以使用我的软件包:
https://github.com/mtownsend5512/xml-to-array
$xmlArray = xml_to_array($response);
$resp_code = $xmlArray['response_code'];
if($resp_code == 'Success'){
echo 'Successfully completed';
}
else{
echo 'not done';
}