SimpleXMLElement из ответа curl - проблема с @attributes - PullRequest
0 голосов
/ 23 марта 2019

XML-код из ответа:

<hints label="luggage">20</hints>
<hints label="handluggage">5</hints>
<hints label="landing"></hints>

После этой функции с ответом:

$arrayResponse = json_decode(json_encode((array)simplexml_load_string($response)), true);

У меня есть это:

"hints" => [
    0 => "20",
    1 => "5",
    2 => [
        @attributes = [
            label => "landing"
        ]
    ]
]

Клавиши «багаж» и «ручной клади» не существует.

Как получить KEYS со значениями из XML? Пример:

[
  "luggage" => 20,
  "handluggage" => 5,
  "landing" => null
]

1 Ответ

1 голос
/ 23 марта 2019

Решение без использования json:

$response = '<root><hints label="luggage">20</hints><hints label="handluggage">5</hints><hints label="landing"></hints></root>';
$a = [];
foreach (simplexml_load_string($response)->hints as $hint) {
    $value = (string)$hint;
    $a[(string)$hint['label']] = $value ?: null;
}
print_r($a);
...