Make WordPress Core

Ticket #15197: 15197.import.keep-trying.2.diff

File 15197.import.keep-trying.2.diff, 1.4 KB (added by duck_, 14 years ago)
  • trunk/parsers.php

     
    1111 */
    1212class WXR_Parser {
    1313        function parse( $file ) {
    14                 if ( extension_loaded( 'simplexml' ) )
     14                if ( extension_loaded( 'simplexml' ) ) {
    1515                        $parser = new WXR_Parser_SimpleXML;
    16                 else if ( extension_loaded( 'xml' ) )
     16                        $result = $parser->parse( $file );
     17                        if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() )
     18                                return $result;
     19                } else if ( extension_loaded( 'xml' ) ) {
    1720                        $parser = new WXR_Parser_XML;
    18                 else
    19                         $parser = new WXR_Parser_Regex;
     21                        $result = $parser->parse( $file );
     22                        if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() )
     23                                return $result;
     24                }
    2025
     26                $parser = new WXR_Parser_Regex;
    2127                return $parser->parse( $file );
    2228        }
    2329}
     
    208214
    209215                if ( ! xml_parse( $xml, file_get_contents( $file ), true ) ) {
    210216                        $current_line = xml_get_current_line_number( $xml );
    211                         $current_column = xml_get_current_column_number( $xml );               
     217                        $current_column = xml_get_current_column_number( $xml );
    212218                        $error_code = xml_get_error_code( $xml );
    213219                        $error_string = xml_error_string( $error_code );
    214220                        return new WP_Error( 'XML_parse_error', 'There was an error when reading this WXR file', array( $current_line, $current_column, $error_string ) );