CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Team
    • Issues (Github)
    • YouTube Channel
    • Get Involved
    • Bakery
    • Featured Resources
    • Newsletter
    • Certification
    • My CakePHP
    • CakeFest
    • Facebook
    • Twitter
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.8 Red Velvet API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 3.8
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Cake
    • Auth
      • Storage
    • Cache
      • Engine
    • Collection
      • Iterator
    • Command
    • Console
      • Exception
    • Controller
      • Component
      • Exception
    • Core
      • Configure
        • Engine
      • Exception
      • Retry
    • Database
      • Driver
      • Exception
      • Expression
      • Schema
      • Statement
      • Type
    • Datasource
      • Exception
    • Error
      • Middleware
    • Event
      • Decorator
    • Filesystem
    • Form
    • Http
      • Client
        • Adapter
        • Auth
      • Cookie
      • Exception
      • Middleware
      • Session
    • I18n
      • Formatter
      • Middleware
      • Parser
    • Log
      • Engine
    • Mailer
      • Exception
      • Transport
    • Network
      • Exception
    • ORM
      • Association
      • Behavior
        • Translate
      • Exception
      • Locator
      • Rule
    • Routing
      • Exception
      • Filter
      • Middleware
      • Route
    • Shell
      • Helper
      • Task
    • TestSuite
      • Fixture
      • Stub
    • Utility
      • Exception
    • Validation
    • View
      • Exception
      • Form
      • Helper
      • Widget
  • None

Classes

  • Hash
  • Inflector
  • Security
  • Text
  • Xml

Traits

  • CookieCryptTrait
  • MergeVariablesTrait

Class Xml

XML handling for CakePHP.

The methods in these classes enable the datasources that use XML to work.

Namespace: Cake\Utility
Location: Utility/Xml.php

Method Summary

  • _createChild() protected static
    Helper to _fromArray(). It will create childs of arrays
  • _fromArray() protected static
    Recursive method to create childs from array
  • _loadXml() protected static
    Parse the input data and create either a SimpleXmlElement object or a DOMDocument.
  • _toArray() protected static
    Recursive method to toArray
  • build() public static
    Initialize SimpleXMLElement or DOMDocument from a given XML string, file path, URL or array.
  • fromArray() public static
    Transform an array into a SimpleXMLElement
  • loadHtml() public static
    Parse the input html string and create either a SimpleXmlElement object or a DOMDocument.
  • toArray() public static
    Returns this XML structure as an array.

Method Detail

_createChild() protected static ¶

_createChild( array $data )

Helper to _fromArray(). It will create childs of arrays

Parameters
array $data
Array with information to create childs

_fromArray() protected static ¶

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

Recursive method to create childs from array

Parameters
DOMDocument $dom
Handler to DOMDocument
DOMElement $node
Handler to DOMElement (child)
array $data
Array of data to append to the $node.
string $format
Either 'attributes' or 'tags'. This determines where nested keys go.
Throws
Cake\Utility\Exception\XmlException

_loadXml() protected static ¶

_loadXml( string $input , array $options )

Parse the input data and create either a SimpleXmlElement object or a DOMDocument.

Parameters
string $input
The input to load.
array $options
The options to use. See Xml::build()
Returns
SimpleXMLElement|DOMDocument
Throws
Cake\Utility\Exception\XmlException

_toArray() protected static ¶

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

Recursive method to toArray

Parameters
SimpleXMLElement $xml
SimpleXMLElement object
array $parentData
Parent array with data
string $ns
Namespace of current child
string[] $namespaces
List of namespaces in XML

build() public static ¶

build( string|array $input , array $options = [] )

Initialize SimpleXMLElement or DOMDocument from a given XML string, file path, URL or array.

Usage:

Building XML from a string:

$xml = Xml::build('<example>text</example>');

Building XML from string (output DOMDocument):

$xml = Xml::build('<example>text</example>', ['return' => 'domdocument']);

Building XML from a file path:

$xml = Xml::build('/path/to/an/xml/file.xml');

Building XML from a remote URL:

use Cake\Http\Client;

$http = new Client();
$response = $http->get('http://example.com/example.xml');
$xml = Xml::build($response->body());

Building from an array:

$value = [
     'tags' => [
         'tag' => [
             [
                 'id' => '1',
                 'name' => 'defect'
             ],
             [
                 'id' => '2',
                 'name' => 'enhancement'
             ]
         ]
     ]
 ];
$xml = Xml::build($value);

When building XML from an array ensure that there is only one top level element.

Options

  • return Can be 'simplexml' to return object of SimpleXMLElement or 'domdocument' to return DOMDocument.
  • loadEntities Defaults to false. Set to true to enable loading of <!ENTITY definitions. This is disabled by default for security reasons.
  • readFile Set to false to disable file reading. This is important to disable when putting user data into Xml::build(). If enabled local files will be read if they exist. Defaults to true for backwards compatibility reasons.
  • parseHuge Enable the LIBXML_PARSEHUGE flag.

If using array as input, you can pass options from Xml::fromArray.

Parameters
string|array $input
XML string, a path to a file, a URL or an array
array $options optional []
The options to use
Returns
SimpleXMLElement|DOMDocument
SimpleXMLElement or DOMDocument
Throws
Cake\Utility\Exception\XmlException

fromArray() public static ¶

fromArray( array|Cake\Collection\Collection $input , string|array $options = [] )

Transform an array into a SimpleXMLElement

Options

  • format If create childs ('tags') or attributes ('attributes').
  • pretty Returns formatted Xml when set to true. Defaults to false
  • version Version of XML document. Default is 1.0.
  • encoding Encoding of XML document. If null remove from XML header. Default is the some of application.
  • return If return object of SimpleXMLElement ('simplexml') or DOMDocument ('domdocument'). Default is SimpleXMLElement.

Using the following data:

$value = [
   'root' => [
       'tag' => [
           'id' => 1,
           'value' => 'defect',
           '@' => 'description'
        ]
    ]
];

Calling Xml::fromArray($value, 'tags'); Will generate:

<root><tag><id>1</id><value>defect</value>description</tag></root>

And calling Xml::fromArray($value, 'attributes'); Will generate:

<root><tag id="1" value="defect">description</tag></root>

Parameters
array|Cake\Collection\Collection $input
Array with data or a collection instance.
string|array $options optional []
The options to use or a string to use as format.
Returns
SimpleXMLElement|DOMDocument
SimpleXMLElement or DOMDocument
Throws
Cake\Utility\Exception\XmlException

loadHtml() public static ¶

loadHtml( string $input , array $options = [] )

Parse the input html string and create either a SimpleXmlElement object or a DOMDocument.

Parameters
string $input
The input html string to load.
array $options optional []
The options to use. See Xml::build()
Returns
SimpleXMLElement|DOMDocument
Throws
Cake\Utility\Exception\XmlException

toArray() public static ¶

toArray( SimpleXMLElement|DOMDocument|DOMNode $obj )

Returns this XML structure as an array.

Parameters
SimpleXMLElement|DOMDocument|DOMNode $obj
SimpleXMLElement, DOMDocument or DOMNode instance
Returns
array
Array representation of the XML structure.
Throws
Cake\Utility\Exception\XmlException
Follow @CakePHP
#IRC
OpenHub
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Logos & Trademarks
  • Community
  • Team
  • Issues (Github)
  • YouTube Channel
  • Get Involved
  • Bakery
  • Featured Resources
  • Newsletter
  • Certification
  • My CakePHP
  • CakeFest
  • Facebook
  • Twitter
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs