Класс Xml
Обработка XML для CakePHP.
Методы в этих классах позволяют работать с источниками данных, использующими XML.
Подробное описание методов
_createChildисходный код защищённый статический
_createChild( array $data )
Вспомогательный метод для _fromArray(). Он будет создавать дочерние элементы массивов
Параметры
- массив
$data - Массив с информацией для создания дочерних элементов
_fromArrayисходный код защищённый статический
_fromArray( DOMDocument $dom , DOMElement $node , array $data , string $format )
Рекурсивный метод для создания дочерних элементов из массива
Параметры
- DOMDocument
$dom - Обработчик DOMDocument
- DOMElement
$node - Обработчик DOMElement (дочерний элемент)
- массив
$data - Массив данных, которые нужно добавить к узлу $node.
- строка
$format - Либо 'attributes', либо 'tags'. Это определяет, куда помещаются вложенные ключи.
Исключения
Cake\Utility\Exception\XmlException\Cake\Utility\Exception\XmlException
_loadXmlисходный код защищённый статический
_loadXml( string $input , array $options )
Парсинг входных данных и создание объекта SimpleXmlElement или DOMDocument.
Параметры
- строка
$input - Входные данные для загрузки.
- массив
$options - Параметры для использования. См. Xml::build()
Возвращает
SimpleXmlElement|DOMDocument\SimpleXmlElement|\DOMDocument
Исключения
Cake\Utility\Exception\XmlException\Cake\Utility\Exception\XmlException
_toArrayисходный код защищённый статический
_toArray( SimpleXMLElement $xml , array $parentData , string $ns , array $namespaces )
Рекурсивный метод для преобразования в массив
Параметры
- SimpleXMLElement
$xml - Объект SimpleXMLElement
- массив
$parentData - Родительский массив с данными
- строка
$ns - Пространство имён текущего дочернего элемента
- массив
$namespaces - Список пространств имён в XML
buildисходный код публичный статический
build( string|array $input , array $options [] )
Инициализация SimpleXMLElement или DOMDocument из заданной XML строки, пути к файлу, URL или массива.
Использование:
Создание XML из строки:
$xml = Xml::build('<example>text</example>');
Создание XML из строки (выход DOMDocument):
$xml = Xml::build('<example>text</example>', ['return' => 'domdocument']);
Создание XML из пути к файлу:
$xml = Xml::build('/path/to/an/xml/file.xml');
Создание XML из удаленного URL:
use Cake\Network\Http\Client; $http = new Client(); $response = $http->get('http://example.com/example.xml'); $xml = Xml::build($response->body());
Создание из массива:
$value = [ 'tags' => [ 'tag' => [ [ 'id' => '1', 'name' => 'defect' ], [ 'id' => '2', 'name' => 'enhancement' ] ] ] ]; $xml = Xml::build($value);
При создании XML из массива убедитесь, что существует только один элемент верхнего уровня.
Параметры
-
returnМожет быть 'simplexml' для возврата объекта SimpleXMLElement или 'domdocument' для возврата DOMDocument. -
loadEntitiesПо умолчанию false. Установите в значение true, чтобы включить загрузку<!ENTITYопределений. По умолчанию отключено по соображениям безопасности. -
readFileУстановите в false, чтобы отключить чтение файлов. Это важно отключить, когда вы помещаете пользовательские данные в Xml::build(). При включении, локальные файлы будут читаться, если они существуют. По умолчанию true для обратной совместимости. - При использовании массива в качестве входных данных, вы можете передать
optionsиз Xml::fromArray.
Параметры
- строка|массив
$input - XML строка, путь к файлу, URL или массив
- массив
$optionsнеобязательно [] - Параметры для использования
Возвращает
SimpleXMLElement|DOMDocumentSimpleXMLElement или DOMDocument
Исключения
Cake\Utility\Exception\XmlException\Cake\Utility\Exception\XmlException
fromArrayисходный код публичный статический
fromArray( array|Cake\Collection\Collection $input , string|array $options [] )
Преобразование массива в SimpleXMLElement
Параметры
-
formatЕсли создавать дочерние элементы ('tags') или атрибуты ('attributes'). -
prettyВозвращает отформатированный XML, когда установленоtrue. По умолчаниюfalse -
versionВерсия XML документа. По умолчанию 1.0. -
encodingКодировка XML документа. Если null, удаляется из заголовка XML. По умолчанию совпадает с кодировкой приложения. -
returnЕсли возвращать объект SimpleXMLElement ('simplexml') или DOMDocument ('domdocument'). По умолчанию SimpleXMLElement.
Используя следующие данные:
$value = [ 'root' => [ 'tag' => [ 'id' => 1, 'value' => 'defect', '@' => 'description' ] ] ];
Вызов Xml::fromArray($value, 'tags'); создаст:
<root><tag><id>1</id><value>defect</value>description</tag></root>
И вызов Xml::fromArray($value, 'attributes'); создаст:
<root><tag id="1" value="defect">description</tag></root>
Параметры
- массив|
Cake\Collection\Collection$input - Массив с данными или экземпляр коллекции.
- строка|массив
$optionsнеобязательно [] - Параметры для использования или строка для использования в качестве формата.
Возвращает
SimpleXMLElement|DOMDocumentSimpleXMLElement или DOMDocument
Исключения
Cake\Utility\Exception\XmlException\Cake\Utility\Exception\XmlException
toArrayисходный код публичный статический
toArray( SimpleXMLElement|DOMDocument|DOMNode $obj )
Возвращает эту структуру XML в виде массива.
Параметры
- SimpleXMLElement|DOMDocument|DOMNode
$obj - Экземпляр SimpleXMLElement, DOMDocument или DOMNode
Возвращает
arrayПредставление XML структуры в виде массива.
Исключения
Cake\Utility\Exception\XmlException\Cake\Utility\Exception\XmlException
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.Utility.Xml.html