Documentación GVHIDRA 3.1.5
Referencia de la Clase Xml

Métodos públicos

 marshal ($var=NULL, $level=0, $name=NULL, $child=false)
 _processTags ($var)
 _processVar ($var, $level, $child)
 _tab ($level)
 xmlentities ($xml, $utf8=false)
 transform ($xml, $xsls, $params=array())

Descripción detallada

The Xml utility class provides methods to generate and transform Xml.

Autor:
Arnold Cano
Versión:
Id:
Xml.php,v 1.1.1.1 2004-06-16 12:25:44 cvs Exp

Definición en la línea 8 del archivo Xml.php.


Documentación de las funciones miembro

_processTags ( var)

Utility method used to process the var and return the correct tags.

private

Parámetros:
mixed$var
Devuelve:
string

Definición en la línea 68 del archivo Xml.php.

        {
                if (is_object($var)) {
                        $tags = get_class($var);
                } else if (is_array($var)) {
                        $tags = 'array';
                } else {
                        $tags = 'value';
                }
                return $tags;
        }
_processVar ( var,
level,
child 
)

Utility method used to process the var and return the correct Xml.

private

Parámetros:
mixed$var
integer$level
boolean$child
Devuelve:
string

Definición en la línea 88 del archivo Xml.php.

        {
                foreach ($var as $key => $value) {
                        if (!is_null($value)) {
                                $tabs = ($child) ? $level + 2 : $level + 1;
                                $xml.= Xml::marshal($value, $tabs, $key, (is_array($var)));
                        }
                }
                return $xml;
        }
_tab ( level)

Utility method used to tab Xml data to a specified level.

private

Parámetros:
integer$level
Devuelve:
string

Definición en la línea 105 del archivo Xml.php.

        {
                $tabs = NULL;
                for ($i = 0; $i < $level; $i++) {
                        $tabs.= "\t";
                }
                return $tabs;
        }
marshal ( var = NULL,
level = 0,
name = NULL,
child = false 
)

Generates Xml data based on variable introspection.

public

Parámetros:
mixed$var
integer$level
string$name
boolean$child
Devuelve:
boolean

Definición en la línea 20 del archivo Xml.php.

        {
                //automatically process if subclassed
                if (is_null($var)) { $xml = $this->marshal($this); }
                //build tags
                if (is_null($name)) {
                        $open = $close = Xml::_processTags($var);
                } else if ($child) {
                        $open = "value key='$name'";
                        $tags = Xml::_processTags($var);
                        $close = 'value';
                } else {
                        $open = $close = $name;
                }
                //build xml
                if (is_object($var)) {
                        $vars = get_object_vars($var);
                        $xml.= Xml::_tab($level)."<$open>\n";
                        if ($child) { $xml.= Xml::_tab($level + 1)."<$tags>\n"; }
                        //process each var in object
                        $xml.= Xml::_processVar($var, $level, $child);
                        if ($child) { $xml.= Xml::_tab($level + 1)."</$tags>\n"; }
                        $xml.= Xml::_tab($level)."</$close>\n";
                } else if (is_array($var)) {
                        $xml.= Xml::_tab($level)."<$open>\n";
                        if ($child) { $xml.= Xml::_tab($level + 1)."<$tags>\n"; }
                        //process each var in array
                        $xml.= Xml::_processVar($var, $level, $child);
                        if ($child) { $xml.= Xml::_tab($level + 1)."</$tags>\n"; }
                        $xml.= Xml::_tab($level)."</$close>\n";
                } else if (is_string($var)) {
                        $xml.= Xml::_tab($level);
                        $xml.= "<$open>".Xml::xmlentities($var)."</$close>\n";
                } else if (is_bool($var)) {
                        $xml.= Xml::_tab($level);
                        $xml.= "<$open>".(($var) ? 'true' : 'false')."</$close>\n";
                } else if (is_numeric($var)) {
                        $xml.= Xml::_tab($level)."<$open>".strval($var)."</$close>\n";
                }
                return $xml;
        }
transform ( xml,
xsls,
params = array() 
)

Transform a document from the supplied Xml data and Xsl stylesheet array (pipelining) optionally processing any runtime parameters to the transformer.

public

Parámetros:
string$xml
array$xsls
array$params
Devuelve:
string

Definición en la línea 149 del archivo Xml.php.

        {
                //automatically process if subclassed
                if (is_null($xml)) { $xml = $this->marshal($this); }
                $xslt = xslt_create();
                //process each stylesheet in pipeline
                foreach ($xsls as $xsl) {
                        //utilize previously processed Xml if available
                        if (!is_null($result)) { $xml = $result; }
                        //force the processor to accept an Xml string instead of a file
                        $result = xslt_process($xslt, 'arg:/_xml', $xsl, NULL,
                                array('/_xml' => $xml), $params);
                }
                xslt_free($xslt);
                return $result;
        }
xmlentities ( xml,
utf8 = false 
)

Converts all applicable characters to xml entities. This is similar to the htmlentities() php function.

public

Parámetros:
string$xml
boolean$utf8
Devuelve:
string

Definición en la línea 122 del archivo Xml.php.

        {
                //http://www.w3.org/TR/1998/REC-xml-19980210#sec-predefined-ent
                $entities = array(
                        '<'     => '&lt;',
                        '>'     => '&gt;',
                        '`'     => '&apos;',
                        '\"'    => '&quot;',
                        '&'     => '&amp;',
                );
                if (is_string($xml)) {
                        if ($utf8) { $xml = utf8_encode($xml); }
                        $xml = strtr($xml, $entities);
                }
                return $xml;
        }

La documentación para esta clase fue generada a partir del siguiente fichero: