【发布时间】:2012-08-01 17:01:36
【问题描述】:
我注意到来自AWS PHP SDK 的响应有时是一个结果,有时是一个结果数组。
这个问题可能是因为我在处理 CFSimpleXML/SimpleXML 对象时缺乏知识。
我尝试了几种方法,但每一种都相当困难,我了解到,在做一些事情之后,它们似乎都很困难,那么你就做错了。
发生了什么
使用 describe_load_balancers 的示例调用
<?php
$elb = new AmazonELB();
$response = $elb->describe_load_balancers();
if ($response->isOK())
{
foreach($response->body->LoadBalancerDescriptions() AS $loadBalancer)
{
print_r($loadBalancer);
}
}
?>
如果它只有一个结果,它会打印如下内容:
CFSimpleXML Object
(
[member] => CFSimpleXML Object
(
[SecurityGroups] => CFSimpleXML Object
(
)
[LoadBalancerName] => LBName1
[CreatedTime] => 2012-08-01T12:22:03.910Z
...
)
)
如果它有多个结果,它会打印如下内容:
CFSimpleXML Object
(
[member] => Array
(
[0] => CFSimpleXML Object
(
[SecurityGroups] => CFSimpleXML Object
(
)
[LoadBalancerName] => LBName1
[CreatedTime] => 2012-08-01T12:22:03.910Z
...
)
[1] => CFSimpleXML Object
(
[SecurityGroups] => CFSimpleXML Object
(
)
[LoadBalancerName] => LBName2
[CreatedTime] => 2012-08-01T16:17:21.030Z
...
)
)
)
如果只有一个结果我想要什么
CFSimpleXML Object
(
[member] => Array
(
[0] => CFSimpleXML Object
(
[SecurityGroups] => CFSimpleXML Object
(
)
[LoadBalancerName] => LBName1
[CreatedTime] => 2012-08-01T12:22:03.910Z
...
)
)
)
我尝试循环查看member 是否是一个数组,但它仍将其作为 CFSimpleXML 对象返回,因此我无法检测到print_r 所说的数组。
我希望能够遍历列表,并在我的代码中从 SimpleXML 中创建 ELB 模型,或者轻松地遍历属性。
【问题讨论】:
标签: php sdk amazon-web-services simplexml