components/XmlImporter.php
public static function toXML($data, $rootNodeName = 'entity', &$xml=null )
    {

        // turn off compatibility mode
        if ( ini_get('zend.ze1_compatibility_mode') == 1 ) ini_set ( 'zend.ze1_compatibility_mode', 0 );
        if ( is_null( $xml ) ) //$xml = simplexml_load_string( "" );
            $xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");

        // loop through the data passed in.
        foreach( $data as $key => $value ) {
            $numeric = false;
            // no numeric keys in our xml please!
            if ( is_numeric( $key ) ) {
                $numeric = 1;
                $key = $rootNodeName;
            }
            // delete any char not allowed in XML element names
            $key = preg_replace('/[^a-z0-9\-\_\.\:]/i', '', $key);
            // if there is another array found recrusively call this function
            if ( is_array( $value ) ) {
                $node = self::isAssoc( $value ) || $numeric ? $xml->addChild( $key ) : $xml;
                // recrusive call.
                if ($numeric) $key = 'anon';
                self::toXml( $value, $key, $node );
            } else {
                // add single node.
                $value = Html::encode($value);
                $xml->addChild($key, $value);
            }
        }
        // pass back as XML
        return $xml->asXML();
    }
public static function toXML($data, $rootNodeName = 'entity', &$xml=null )
    {

        // turn off compatibility mode
        if ( ini_get('zend.ze1_compatibility_mode') == 1 ) ini_set ( 'zend.ze1_compatibility_mode', 0 );
        if ( is_null( $xml ) ) //$xml = simplexml_load_string( "" );
            $xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");

        // loop through the data passed in.
        foreach( $data as $key => $value ) {
            $numeric = false;
            // no numeric keys in our xml please!
            if ( is_numeric( $key ) ) {
                $numeric = 1;
                $key = $rootNodeName;
            }
            // delete any char not allowed in XML element names
            $key = preg_replace('/[^a-z0-9\-\_\.\:]/i', '', $key);
            // if there is another array found recrusively call this function
            if ( is_array( $value ) ) {
                $node = self::isAssoc( $value ) || $numeric ? $xml->addChild( $key ) : $xml;
                // recrusive call.
                if ($numeric) $key = 'anon';
                self::toXml( $value, $key, $node );
            } else {
                // add single node.
                $value = Html::encode($value);
                $xml->addChild($key, $value);
            }
        }
        // pass back as XML
        return $xml->asXML();
    }
public static function toXML ( $ data , $ rootNodeName = 'entity' , & $ xml = null ) { // turn off compatibility mode if ( ini_get ( 'zend.ze1_compatibility_mode' ) == 1 ) ini_set ( 'zend.ze1_compatibility_mode' , 0 ) ; if ( is_null ( $ xml ) ) //$xml = simplexml_load_string( "" ); $ xml = simplexml_load_string ( "<?xml version='1.0' encoding='utf-8'?><$rootNodeName />" ) ; // loop through the data passed in. foreach ( $ data as $ key => $ value ) { $ numeric = false ; // no numeric keys in our xml please! if ( is_numeric ( $ key ) ) { $ numeric = 1 ; $ key = $ rootNodeName ; } // delete any char not allowed in XML element names $ key = preg_replace ( '/[^a-z0-9\-\_\.\:]/i' , '' , $ key ) ; // if there is another array found recrusively call this function if ( is_array ( $ value ) ) { $ node = self :: isAssoc ( $ value ) || $ numeric ? $ xml -> addChild ( $ key ) : $ xml ; // recrusive call. if ( $ numeric ) $ key = 'anon' ; self :: toXml ( $ value , $ key , $ node ) ; } else { // add single node. $ value = Html :: encode ( $ value ) ; $ xml -> addChild ( $ key , $ value ) ; } } // pass back as XML return $ xml -> asXML ( ) ; }
Converts a multidimensional associative array to an XML document.

@param array $data
@param string $rootNodeName - what you want the root node to be - defaultsto data.
@param SimpleXMLElement $xml - should only be used recursively
@return string XML
Converts a multidimensional associative array to an XML document .