无法用 PHP (Laravel) 解析 XML - 卡在 属性 名称中的“@”符号处
Trouble parsing XML with PHP (Laravel) - getting stuck at an "@" symbol in a property name
我有以下代码:
$response = file_get_contents($xml_path);
$xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
$xml2 = simplexml_load_string($xml->CompressedVehicles, 'SimpleXMLElement', LIBXML_NOCDATA);
foreach($xml2->RS->R->VS->V as $car) {
dd($car);
}
产生以下结果:
SimpleXMLElement {#318 ▼
+"@attributes": array:11 [▼
"_0" => "1C6HJTAG8LL116179"
"_1" => "2020"
"_2" => "Jeep"
"_3" => "Gladiator"
"_4" => "Sport S"
"_5" => "J9856"
"_6" => "New"
"_7" => "1"
"_8" => "7/24/2019 12:00:00 AM"
"_9" => "47615"
"_10" => "0"
]
}
但是,当我尝试深入了解 $car 变量时,使用:
dd($car->{'@attributes'});
或
dd($car->{'@attributes'}->{'_0'});
我得到一个空响应。
我也尝试过替代语法,就像您将用于传统数组一样:
dd($car['@attributes']['_0']);
无果。
知道我在这里遗漏了什么,或者我可以做什么来访问这个数组中的信息?
以防万一将来有人需要这个 - 我必须使用以下语法:
dd($car->attributes()['_3']);
成功了。
我有以下代码:
$response = file_get_contents($xml_path);
$xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
$xml2 = simplexml_load_string($xml->CompressedVehicles, 'SimpleXMLElement', LIBXML_NOCDATA);
foreach($xml2->RS->R->VS->V as $car) {
dd($car);
}
产生以下结果:
SimpleXMLElement {#318 ▼
+"@attributes": array:11 [▼
"_0" => "1C6HJTAG8LL116179"
"_1" => "2020"
"_2" => "Jeep"
"_3" => "Gladiator"
"_4" => "Sport S"
"_5" => "J9856"
"_6" => "New"
"_7" => "1"
"_8" => "7/24/2019 12:00:00 AM"
"_9" => "47615"
"_10" => "0"
]
}
但是,当我尝试深入了解 $car 变量时,使用:
dd($car->{'@attributes'});
或
dd($car->{'@attributes'}->{'_0'});
我得到一个空响应。
我也尝试过替代语法,就像您将用于传统数组一样:
dd($car['@attributes']['_0']);
无果。
知道我在这里遗漏了什么,或者我可以做什么来访问这个数组中的信息?
以防万一将来有人需要这个 - 我必须使用以下语法:
dd($car->attributes()['_3']);
成功了。