首页 > 解决方案 > 在 foreach 循环中访问 xml 节点属性

问题描述

我有一个作为 SoapClient 请求响应的 XML 字符串(我也尝试过使用 cURL)

然后我使用:

$xml = simplexml_load_string($result);

我可以通过节点索引获取 $xml 中节点的属性(假设我想访问索引为 100 的车辆节点:

dump($xml->vehicle[100]->attributes());

或者我可以通过名称访问特定属性:

dump($xml->vehicle[100]['key']):

当我尝试在 foreach 中做同样的事情时,它不起作用

foreach($xml->vehicle as $car) {
    dump($car->attributes());
}

我也尝试了以下但没有成功

$vehicles = array();
foreach($xml->vehicle as $index => $car) {
    $vehicles[$index] = array($car->attributes());
}
dump($vehicles);

我目前只是试图转储每个节点的属性,但我的目标是稍后在 Vehicles 数据库中创建一个条目,每个属性都是一列,行数取决于 SoapClient 或 cURL 的响应

如何访问 foreach 中每个节点的属性?

预先感谢您的帮助

编辑

我收到 HTTP 错误 500,但我已经将默认套接字超时增加到 6000(以防万一哈哈),但是如果我删除了 foreach,那么代码会在大约 1 分钟内完成执行

标签: phpxml-parsingsoap-clientxml-attribute

解决方案


推荐阅读