WordPress.org

Make WordPress Core

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

File 15197.import.keep-trying.2.diff, 1.4 KB (added by duck_, 3 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 ) );