Документация для разработчиков
Темная тема

CXMLCreator

Описание и список методов

Класс представляет собой тег XML-документа, состоящий из атрибутов, дочерних элементов, текстового содержимого и CDATA контента.

Методы класса

Метод ОписаниеС версии
CXMLCreator(
 string tag,
 boolean cdata
)
Конструктор класса. Принимает в качестве параметра название тега. 8.0.0
static
CXMLCreator
createTagAttributed(
 string heavyTag
)
Метод создаёт тег CXMLCreator из названия тега heavyTag, записанного в особенном формате.8.0.0
static
CXMLCreator
encodeValueLight(
 string name,
 AnyType Value
)
Метод создаёт дерево XML документа с именем Name и строением Value.
Name - название тега в формате heavyTag метода createTagAttributed.
Value может быть любым типом данных, например, последовательностью вложенных ассоциативных массивов. Смотрите пример использования ниже.
8.0.0
setCDATA Метод устанавливает CDATA-контент тега. 8.0.0
setAttribute Метод устанавливает атрибут тега.8.0.0
setData Метод устанавливает текстовое содержимое тега. 8.0.0
setName Метод устанавливает название тега. 8.0.0
addChild Метод добавляет элемент XML документа в список своих детей. 8.0.0
getChildrenCount Метод возвращает количество подчинённых элементов XML документа. 8.0.0
getXML Метод возвращает XML документ в виде строки. 8.0.0
getXMLHeader Метод возвращает заголовок XML документа. 8.0.0

Пример

Пример применения в обработчике SOAP запросов SOAP сервера



class CMSSOAPResearch extends CSOAPServerResponser
{
	...

	function ProcessRequestBody(&$cserver, $body) 
	{
		$functionName = $body->name();
		$namespaceURI = $body->namespaceURI();
		$requestNode = $body;
        
		if ($functionName == "Registration")
		{
			$root = new CXMLCreator("RegistrationResponse");
			$root->setAttribute("xmlns", "urn:Microsoft.Search");
            
			$regres = new CXMLCreator("RegistrationResult");
			$root->addChild($regres);
                        
			$prup = new CXMLCreator("ProviderUpdate");
			$prup->setAttribute("xmlns", "urn:Microsoft.Search.Registration.Response");
			$prup->setAttribute("revision", "1");             
			$prup->setAttribute("build", "1");
			$regres->addChild($prup);
            
			$stat = new CXMLCreator("Status");
			$stat->setData("SUCCESS");
			$prup->addChild($stat);
                        
			$providers = array(
                
				"Provider" => array (
					"Message" => "Тестовая служба.",
					"Id" => "{$this->provider_id}",
					"Name" => "Тестовая служба. {$this->add_tittle}",
					"QueryPath" => $this->query_path,
					"RegistrationPath" => $this->registration_path,
					"AboutPath" => "http://www.bitrix.ru/",
					"Type" => "SOAP",
					"Revision" => "1",
					"Services" => array(
						"Service" => array(
							"Id" => "{$this->service_id}",
							"Name" => "Тестовая служба. {$this->add_tittle}",
							"Description" => "Тестовая служба для тестирования soap сервера.",
							"Copyright" => "(c) Bitrix.",
							"Display" => "On",
							"Category" => "ECOMMERCE_GENERAL",
							"Parental" => "Unsupported",
						)
					)                        
				)                    
            
			);

			$providersEncoded = CSOAPRequest::encodeValueLight("Providers", $providers);
			$prup->addChild($providersEncoded);        
            
			...
            
			return true;
		}
        
	return false;
	}
}


© «Битрикс», 2001-2024, «1С-Битрикс», 2024