debug(TypeConverter::$method($xml)); } } // Convert a complicated XML file to an array $xml = file_get_contents('test.xml'); foreach (array('none', 'merge', 'group', 'overwrite') as $format) { debug('TypeConverter::xmlToArray(' . $format . ')'); switch ($format) { case 'none': debug(TypeConverter::xmlToArray($xml, TypeConverter::XML_NONE)); break; case 'merge': debug(TypeConverter::xmlToArray($xml, TypeConverter::XML_MERGE)); break; case 'group': debug(TypeConverter::xmlToArray($xml, TypeConverter::XML_GROUP)); break; case 'overwrite': debug(TypeConverter::xmlToArray($xml, TypeConverter::XML_OVERWRITE)); break; } } // Convert UTF-8 $json = array('j\'étais', 'joué', '中文', 'éáíúűóüöäÍÓ'); debug($json); debug(TypeConverter::utf8Encode($json)); debug(TypeConverter::utf8Decode(TypeConverter::utf8Encode($json))); ?> </body> </html>
/** * Parse an xml string into a usable php structure */ private function normalizeFromXml($name, $config, $input = '') { $doc = new SimpleXMLElement($this->filedata[$name]); $items = TypeConverter::xmlToArray($doc, TypeConverter::XML_MERGE); // get down into the root element $root = $config['target']['mapping']['root']; $elements = split('/', str_replace('//', '', $root)); if ($elements[0] == 'response' && !$items['response']) { array_shift($elements); } if (array_key_exists('nodata', $items['response']) && is_array($items['response']['nodata'])) { $this->resourcedata[$name] = 'nodata'; return $doc; } foreach ($elements as $elm) { $items = $items[$elm]; } $items = $this->flattenZOHO($items); $this->resourcedata[$name] = $items; return $doc; }