API16:JXMLElement/asFormattedXML
From Joomla! Documentation
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.
Contents |
Description
Return a well-formed XML string based on SimpleXML element
Description:JXMLElement/asFormattedXML
Syntax
asFormattedXML($compressed=false, $indent="\t", $level=0)
| Parameter Name | Default Value | Description |
|---|---|---|
| $compressed | false | $compressed Should we use indentation and newlines ? |
| $indent | "\t" | $level Indentaion level. |
| $level | 0 |
Returns
string
Defined in
libraries/joomla/utilities/xmlelement.php
Importing
jimport( 'joomla.utilities.xmlelement' );
Source Body
public function asFormattedXML($compressed = false, $indent = "\t", $level = 0) { $out = ''; //-- Start a new line, indent by the number indicated in $level $out .=($compressed) ? '' : "\n".str_repeat($indent, $level); //-- Add a <, and add the name of the tag $out .= '<'.$this->getName(); //-- For each attribute, add attr="value" foreach($this->attributes() as $attr) { $out .= ' '.$attr->getName().'="'.htmlspecialchars((string)$attr, ENT_COMPAT, 'UTF-8').'"'; } //-- If there are no children and it contains no data, end it off with a /> if( ! count($this->children()) && !(string)$this) { $out .= " />"; } else { //-- If there are children if(count($this->children())) { //-- Close off the start tag $out .= '>'; $level ++; //-- For each child, call the asFormattedXML function (this will ensure that all children are added recursively) foreach($this->children() as $child) { $out .= $child->asFormattedXML($compressed, $indent, $level); } $level --; //-- Add the newline and indentation to go along with the close tag $out .=($compressed) ? '' : "\n".str_repeat($indent, $level); } elseif((string)$this) { //-- If there is data, close off the start tag and add the data $out .= '>'.htmlspecialchars((string)$this, ENT_COMPAT, 'UTF-8'); } //-- Add the end tag $out .= '</'.$this->getName().'>'; } return $out; }
[Edit See Also] SeeAlso:JXMLElement/asFormattedXML
Examples
<CodeExamplesForm />

demo.xml
Get the whole XML document or a part of it.
Output:
Die "komprimierte" Ausgabe, z.B. zur Verwendung in Streams:
Output:
Output only a part of the document:
Output: