Класс 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<string, mixed> $data): void
Вспомогательный метод для _fromArray(). Он создаёт дочерние элементы массивов.
Параметры
-
array<string, mixed>$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<string, mixed> $options): SimpleXMLElementDOMDocument
Парсинг входных данных и создание объекта SimpleXmlElement или DOMDocument.
Параметры
-
string$input Входные данные для загрузки.
-
array<string, mixed>$options Параметры. См. Xml::build().
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlException_toArray() protected static
_toArray(SimpleXMLElement $xml, array<string, mixed> $parentData, string $ns, array<string> $namespaces): void
Рекурсивный метод для преобразования в массив.
Параметры
-
SimpleXMLElement$xml Объект SimpleXMLElement.
-
array<string, mixed>$parentData Родительский массив с данными.
-
string$ns Пространство имён текущего дочернего элемента.
-
array<string>$namespaces Список пространств имён в XML.
Возвращает
voidbuild() public static
build(object|array|string $input, array<string, mixed> $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.
Параметры
-
object|array|string$input XML-строка, путь к файлу, URL или массив.
-
array<string, mixed>$options необязательный Используемые параметры.
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptionfromArray() public static
fromArray(object|array $input, array<string, mixed> $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>
Параметры
-
object|array$input Массив с данными или экземпляр коллекции.
-
array<string, mixed>$options необязательный Используемые параметры.
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptionload() protected static
load(string $input, array<string, mixed> $options, Closure $callable): SimpleXMLElementDOMDocument
Парсинг входных данных и создание объекта SimpleXmlElement или DOMDocument.
Параметры
-
string$input Входные данные для загрузки.
-
array<string, mixed>$options Параметры. См. Xml::build().
-
Closure$callable Замыкание, которое должно вернуть экземпляр SimpleXMLElement или DOMDocument.
Возвращает
SimpleXMLElementDOMDocumentИсключения
Cake\Utility\Exception\XmlExceptionloadHtml() public static
loadHtml(string $input, array<string, mixed> $options = []): SimpleXMLElementDOMDocument
Парсинг входной HTML-строки и создание объекта SimpleXmlElement или DOMDocument.
Параметры
-
string$input Входная HTML-строка для загрузки.
-
array<string, mixed>$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.4/class-Cake.Utility.Xml.html