как расширить keycloak для поддержки аутентификации по отпечаткам пальцев

Я бы прокомментировал второй наиболее проголосовавший ответ, потому что он не сохраняет структуру и генерирует плохой xml, если есть числовые индексированные внутренние массивы.

Я разработал свою собственную версию на основе этого, потому что мне нужен простой конвертер между json и xml независимо от структуры данных. Моя версия сохраняет информацию о числовом ключе и структуру исходного массива. Он создает элементы для числовых индексированных значений путем переноса значений в элементы с именем, обозначаемыми именем, с ключевым атрибутом, который содержит числовой ключ.

Например

array('test' => array(0 => 'some value', 1 => 'other'))

преобразуется в

<test><value key="0">some value</value><value key="1">other</value></test>

Моя версия array_to_xml -функции (надеюсь, что это кому-то помогает:)

function array_to_xml($arr, &$xml) {
    foreach($arr as $key => $value) {
        if(is_array($value)) {
            if(!is_numeric($key)){
                $subnode = $xml->addChild("$key");
            } else {
                $subnode = $xml->addChild("value");
                $subnode->addAttribute('key', $key);                    
            }
            array_to_xml($value, $subnode);
        }
        else {
            if (is_numeric($key)) {
                $xml->addChild("value", $value)->addAttribute('key', $key);
            } else {
                $xml->addChild("$key",$value);
            }
        }
    }
}   
0
задан WestFarmer 18 January 2019 в 08:38
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: