• Модуль: webservice
  • Путь к файлу: ~/bitrix/modules/webservice/classes/general/xmlcreator.php
  • Класс: CXMLCreator
  • Вызов: CXMLCreator::encodeValueLight
static function encodeValueLight( $name, $value)
{
	global $xsd_simple_type;

	//AddMessage2Log($name."|".mydump($value));
	if (!$name)
	{
		ShowError("Tag name undefined (== 0) in encodeValueLight.");
		return false;
	}

	$node = CXMLCreator::createTagAttributed($name);
	$name = $node->tag;

	if (!$node)
	{
		ShowError("Can't create NODE object. Unable to parse tag name: ".$name);
		return false;
	}

	if (is_object($value) && mb_strtolower(get_class($value)) == "cxmlcreator")
	{
		$node->addChild($value);
	}
	else if (is_object($value))
	{
		$ovars = get_object_vars($value);
		foreach ($ovars as $pn => $pv)
		{
			$decode = CXMLCreator::encodeValueLight( $pn, $pv);
			if ($decode) $node->addChild($decode);
		}
	}
	else if (is_array($value))
	{
		foreach ($value as $pn => $pv)
		{
			$decode = CXMLCreator::encodeValueLight( $pn, $pv);
			if ($decode)
			{
				$node->addChild($decode);
			}
		}
	}
	else
	{
		if (!$value) $node->setData("");
		else if (!isset($xsd_simple_type[gettype($value)]))
		{
			ShowError("Unknown param type.");
			return false;
		}

		$node->setData($value);
	}

	return $node;
}