Класс Xml
Обработка XML для CakePHP.
Методы в этих классах позволяют работать с источниками данных, использующими XML.
Краткое описание методов
-
_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.
-
load() protected static
Парсит входные данные и создаёт объект SimpleXmlElement или DOMDocument.
-
loadHtml() public static
Парсит входную строку HTML и создаёт объект SimpleXmlElement или DOMDocument.
-
toArray() public static
Возвращает эту XML-структуру в виде массива.
Подробное описание методов
_createChild() protected static
_createChild(array $data): void
Вспомогательный метод для _fromArray(). Он создаёт дочерние элементы массивов.
Параметры
-
array$data Массив с информацией для создания дочерних элементов.
Возвращает
void_fromArray() protected static
_fromArray(DOMDocument $dom, DOMDocumentDOMElement $node, array $data, string $format): void
Рекурсивный метод для создания дочерних элементов из массива.
Параметры
-
DOMDocument$dom Обработчик DOMDocument.
-
DOMDocumentDOMElement$node Обработчик DOMElement (дочерний элемент).
-
array$data Массив данных для добавления к элементу $node.
-
string$format «attributes» или «tags». Определяет, куда помещаются вложенные ключи.
Возвращает
voidИсключения
Cake\Utility\Exception\XmlException_loadXml() protected static
_loadXml(string $input, array $options): SimpleXMLElementDOMDocument
Парсит входные данные и создаёт объект SimpleXmlElement или DOMDocument.
Параметры
-
string$input Входные данные для загрузки.
-
array$options Параметры. См. Xml::build().
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlException_toArray() protected static
_toArray(SimpleXMLElement $xml, array $parentData, string $ns, string[] $namespaces): void
Рекурсивный метод для преобразования в массив.
Параметры
-
SimpleXMLElement$xml Объект SimpleXMLElement.
-
array$parentData Родительский массив с данными.
-
string$ns Пространство имён текущего дочернего элемента.
-
string[]$namespaces Список пространств имён в XML.
Возвращает
voidbuild() public static
build(string|array|object $input, array $options = []): SimpleXMLElementDOMDocument
Инициализирует 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Установите в true для включения чтения файла. По умолчанию отключено, чтобы предотвратить доступ к локальной файловой системе. Включайте только при безопасном вводе. -
parseHugeВключить флагLIBXML_PARSEHUGE.
При использовании массива в качестве входных данных вы можете передать options из Xml::fromArray.
Параметры
-
string|array|object$input XML-строка, путь к файлу, URL или массив
-
array$options опционально Используемые параметры.
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptionfromArray() public static
fromArray(array|object $input, array $options = []): SimpleXMLElementDOMDocument
Преобразует массив в 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>
Параметры
-
array|object$input Массив с данными или экземпляр коллекции.
-
array$options опционально Используемые параметры.
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptionload() protected static
load(string $input, array $options, Closure $callable): SimpleXMLElementDOMDocument
Парсит входные данные и создаёт объект SimpleXmlElement или DOMDocument.
Параметры
-
string$input Входные данные для загрузки.
-
array$options Параметры. См. Xml::build().
-
Closure$callable Замыкание, которое должно возвращать экземпляр SimpleXMLElement или DOMDocument.
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptionloadHtml() public static
loadHtml(string $input, array $options = []): SimpleXMLElementDOMDocument
Парсит входную строку HTML и создаёт объект SimpleXmlElement или DOMDocument.
Параметры
-
string$input Входная строка HTML для загрузки.
-
array$options опционально Используемые параметры. См. Xml::build().
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptiontoArray() public static
toArray(SimpleXMLElementDOMDocumentDOMNode $obj): array
Возвращает эту XML-структуру в виде массива.
Параметры
-
SimpleXMLElementDOMDocumentDOMNode$obj Экземпляр SimpleXMLElement, DOMDocument или DOMNode.
Возвращает
arrayИсключения
Cake\Utility\Exception\XmlException
© 2005–present 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/4.2/class-Cake.Utility.Xml.html