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 tofalse -
versionVersion 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