On this page
Class Xml
XML handling for CakePHP.
The methods in these classes enable the datasources that use XML to work.
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Located at Cake/Utility/Xml.php
Method Detail
_createChildsource protected static
_createChild( array $data )
Helper to _fromArray(). It will create childs of arrays
Parameters
-
array
$data - Array with informations to create childs
_fromArraysource 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 - $data Array of data to append to the $node.
-
string
$format - Either 'attributes' or 'tags'. This determines where nested keys go.
Throws
XmlExceptionXmlException
_loadXmlsource 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|DOMDocumentSimpleXmlElement|DOMDocument
Throws
XmlExceptionXmlException
_toArraysource protected static
_toArray( SimpleXMLElement $xml , array $parentData , string $ns , array $namespaces )
Recursive method to toArray
Parameters
-
SimpleXMLElement
$xml - SimpleXMLElement object
-
array
$parentData - $parentData Parent array with data
-
string
$ns - Namespace of current child
-
array
$namespaces - List of namespaces in XML
buildsource public static
build( string|array $input , array $options array() )
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>', array('return' => 'domdocument'));
Building XML from a file path:
$xml = Xml::build('/path/to/an/xml/file.xml');
Building from a remote URL:
$xml = Xml::build('http://example.com/example.xml');
Building from an array:
$value = array(
'tags' => array(
'tag' => array(
array(
'id' => '1',
'name' => 'defect'
),
array(
'id' => '2',
'name' => 'enhancement'
)
)
)
);
$xml = Xml::build($value);
When building XML from an array ensure that there is only one top level element.
Options
returnCan be 'simplexml' to return object of SimpleXMLElement or 'domdocument' to return DOMDocument.loadEntitiesDefaults to false. Set to true to enable loading of<!ENTITYdefinitions. This is disabled by default for security reasons.readFileSet to false to disable file reading. This is important to disable when putting user data into Xml::build(). If enabled local & remote files will be read if they exist. Defaults to true for backwards compatibility reasons.- If using array as input, you can pass
optionsfrom Xml::fromArray.
Parameters
-
string|array
$input - XML string, a path to a file, a URL or an array
-
array
$optionsoptional array() - The options to use
Returns
SimpleXMLElement|DOMDocumentSimpleXMLElement or DOMDocument
Throws
XmlExceptionXmlException
fromArraysource public static
fromArray( array $input , array $options array() )
Transform an array into a SimpleXMLElement
Options
formatIf create childs ('tags') or attributes ('attributes').prettyReturns formatted Xml when set totrue. Defaults tofalseversionVersion of XML document. Default is 1.0.encodingEncoding of XML document. If null remove from XML header. Default is the some of application.returnIf return object of SimpleXMLElement ('simplexml') or DOMDocument ('domdocument'). Default is SimpleXMLElement.
Using the following data:
$value = array(
'root' => array(
'tag' => array(
'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
$input - Array with data
-
array
$optionsoptional array() - The options to use
Returns
SimpleXMLElement|DOMDocumentSimpleXMLElement or DOMDocument
Throws
XmlExceptionXmlException
toArraysource 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
arrayArray representation of the XML structure.
Throws
XmlExceptionXmlException
© 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/2.7/class-Xml.html