- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/xmldocument.php
- Класс: specifierCDavXmlDocument
- Вызов: CDavXmlDocument::LoadFromStringRecursive
static function LoadFromStringRecursive(&$xmlDocument, $arData, &$startFrom)
{
$result = array();
while (isset($arData[$startFrom]))
{
$tagdata = $arData[$startFrom++];
if (!isset($tagdata) || !isset($tagdata['tag']) || !isset($tagdata['type']))
break;
if ($tagdata['type'] == "close")
break;
$attributes = (isset($tagdata['attributes']) ? $tagdata['attributes'] : false);
if ($tagdata['type'] == "open")
{
$subtree = self::LoadFromStringRecursive($xmlDocument, $arData, $startFrom);
$result[] = $xmlDocument->CreateNewNode($tagdata['tag'], $subtree, $attributes);
}
elseif ($tagdata['type'] == "complete")
{
$value = (isset($tagdata['value']) ? $tagdata['value'] : false);
$result[] = $xmlDocument->CreateNewNode($tagdata['tag'], $value, $attributes);
}
}
if (count($result) == 1 )
return $result[0];
return $result;
}