Spec-Zone.ru › CakePHP 3.3

Класс Xml

Обработка XML для CakePHP.

Методы в этих классах позволяют работать источникам данных, использующим XML.

Пространство имён: Cake\Utility
Расположение: Utility/Xml.php

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

  • _createChild() protected static
    Вспомогательный метод для _fromArray(). Он создаёт дочерние элементы массивов.
  • _fromArray() protected static
    Рекурсивный метод для создания дочерних элементов из массива.
  • _loadXml() protected static
    Парсинг входных данных и создание объекта SimpleXmlElement или DOMDocument.
  • _toArray() protected static
    Рекурсивный метод для преобразования в массив.
  • build() public static
    Инициализация SimpleXMLElement или DOMDocument из заданной XML-строки, пути к файлу, URL или массива.
  • fromArray() public static
    Преобразование массива в SimpleXMLElement.
  • toArray() public static
    Возвращает эту XML-структуру в виде массива.

Подробное описание методов

_createChild()source protected static

_createChild( array $data )

Вспомогательный метод для _fromArray(). Он создаёт дочерние элементы массивов.

Параметры

массив $data
Массив с информацией для создания дочерних элементов.

_fromArray()source protected static

_fromArray( DOMDocument $dom , DOMElement $node , array $data , string $format )

Рекурсивный метод для создания дочерних элементов из массива.

Параметры

DOMDocument $dom
Обработчик DOMDocument.
DOMElement $node
Обработчик DOMElement (дочерний элемент).
массив $data
Массив данных для добавления к узлу $node.
строка $format
Значение 'attributes' или 'tags'. Определяет, куда помещаются вложенные ключи.

Исключения

Cake\Utility\Exception\XmlException

_loadXml()source protected static

_loadXml( string $input , array $options )

Парсинг входных данных и создание объекта SimpleXmlElement или DOMDocument.

Параметры

строка $input
Входные данные для загрузки.
массив $options
Параметры для использования. См. Xml::build()

Возвращает

SimpleXmlElement|DOMDocument

Исключения

Cake\Utility\Exception\XmlException

_toArray()source protected static

_toArray( SimpleXMLElement $xml , array $parentData , string $ns , array $namespaces )

Рекурсивный метод для преобразования в массив.

Параметры

SimpleXMLElement $xml
Объект SimpleXMLElement.
массив $parentData
Родительский массив с данными.
строка $ns
Пространство имён текущего дочернего элемента.
массив $namespaces
Список пространств имён в XML.

build()source public static

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\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 по причинам обратной совместимости.
  • parseHuge Включить LIBXML_PARSEHUGE флаг.

Если используется массив в качестве входных данных, вы можете передать options из Xml::fromArray.

Параметры

строка|массив $input
XML-строка, путь к файлу, URL или массив
массив $options необязательно []
Параметры для использования

Возвращает

SimpleXMLElement|DOMDocument
SimpleXMLElement или DOMDocument

Исключения

Cake\Utility\Exception\XmlException

fromArray()source public static

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|DOMDocument
SimpleXMLElement или DOMDocument

Исключения

Cake\Utility\Exception\XmlException

toArray()source public static

toArray( SimpleXMLElement|DOMDocument|DOMNode $obj )

Возвращает эту XML-структуру в виде массива.

Параметры

SimpleXMLElement|DOMDocument|DOMNode $obj
Экземпляр SimpleXMLElement, DOMDocument или DOMNode.

Возвращает

массив
Массивная представление XML-структуры.

Исключения

Cake\Utility\Exception\XmlException

© 2005–2017 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.
https://api.cakephp.org/3.3/class-Cake.Utility.Xml.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API