Resources: PHP Official Website - SimpleXMLElement Documentation
If you claim that there is an error in this line:
$xml = iconv("UTF-16", "UTF-8", $xml);
then change it to this because $ xml is probably not "UTF-16":
$xml = iconv(mb_detect_encoding($xml), "UTF-8", $xml);
To save the XML file:
//saving generated xml file $xml_student_info->asXML('file path and name');
To import an XML file:
$url = "http://www.domain.com/users/file.xml"; $xml = simplexml_load_string(file_get_contents($url));
If you have an array as follows:
$test_array = array ( 'bla' => 'blub', 'foo' => 'bar', 'another_array' => array ( 'stack' => 'overflow', ), );
and you want to convert it to the following XML:
<?xml version="1.0"?> <main_node> <bla>blub</bla> <foo>bar</foo> <another_array> <stack>overflow</stack> </another_array> </main_node>
here is the php code:
<?php //make the array $test = array ( 'bla' => 'blub', 'foo' => 'bar', 'another_array' => array ( 'stack' => 'overflow', ), ); //make an XML object $xml_test = new SimpleXMLElement("<?xml version=\"1.0\"?><main_node></main_node>"); // function call to convert array to xml array_to_xml($test,$xml_test); //here the function definition (array_to_xml) function array_to_xml($test, &$xml_test) { foreach($test as $key => $value) { if(is_array($value)) { if(!is_numeric($key)){ $subnode = $xml_test->addChild("$key"); array_to_xml($value, $subnode); } else{ $subnode = $xml_test->addChild("item$key"); array_to_xml($value, $subnode); } } else { $xml_test->addChild("$key","$value"); } } } /we finally print it out print $xml_test->asXML(); ?>