public static function xml2array($xml)
 {
     $parser = xml_parser_create();
     xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
     $parserResultStatus = xml_parse_into_struct($parser, $xml, $values);
     if ($parserResultStatus !== 1) {
         throw new Corto_XmlToArray_Exception('Error parsing incoming XML. ' . PHP_EOL . 'Error code: ' . xml_error_string(xml_get_error_code($parser)) . PHP_EOL . 'XML: ' . $xml);
     }
     xml_parser_free($parser);
     self::$_singulars = array_fill_keys(self::$_singulars, 1);
     $return = self::_xml2array($values);
     self::$_singulars = array_keys(self::$_singulars);
     return $return[0];
 }
Пример #2
0
 public static function xml2array($xml, $topleveltag = false)
 {
     $parser = xml_parser_create();
     xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
     $parserResultStatus = xml_parse_into_struct($parser, $xml, $values);
     if ($parserResultStatus !== 1) {
         throw new Corto_XmlToArray_Exception('Error parsing incoming XML. ' . PHP_EOL . 'Error code: ' . xml_error_string(xml_get_error_code($parser)) . PHP_EOL . 'Line: ' . xml_get_current_line_number($parser) . PHP_EOL . 'XML: ' . $xml);
     }
     xml_parser_free($parser);
     self::$_singulars = array_fill_keys(self::$_singulars_list, 1);
     $return = self::_xml2array($values);
     if ($topleveltag) {
         return array($return[0]['__t'] => array($return[0]));
     }
     return $return[0];
 }