Page 1 of 1

Simple xml2array that PRESERVES HTML

Posted: Thu Dec 30, 2010 6:08 pm
by lwc
The following code is relatively short, but censors any HTML tags inside the XML:

Code: Select all

function object2array($object) // from php.net 
{  
    $return = NULL;  
        
    if(is_array($object))  
    {  
        foreach($object as $key => $value)  
            $return[$key] = object2array($value);  
    }  
    else  
    {  
        $var = get_object_vars($object);  
            
        if($var)  
        {  
            foreach($var as $key => $value)  
                $return[$key] = ($key && !$value) ? NULL : object2array($value);  
        }  
        else return $object;  
    }  

    return $return;  
} 

$bla=simplexml_load_file($xml_file); 
$bla=object2array($bla);
This one keeps HTML but turns everything into one giant string:

Code: Select all

$bla=$bla->asXML();
So how can I easily preserve HTML? But better yet, can I somehow just tell PHP which tags to convert? For example, only <this> and <that> in:

Code: Select all

<this>
  <that>Text <foo>and</foo> test and <whatever>something</whatever>.</that>
</this>
thus creating:

Code: Select all

Array
(
    [this] => Array
            [0] => Array
                (
                    [that] => Text <foo>and</foo> test and <whatever>something</whatever>.
                 )

}