Thursday, June 18, 2026
HomeLanguagesPHP | xml_error_string() Function

PHP | xml_error_string() Function

Pre-requisite: XML Basics
The xml_error_string() function is an inbuilt function in PHP which returns the XML parser error description for generated error code.

Syntax: 

string xml_error_string( int $error_code)

Parameters: This function accepts single parameter $error_code which is required. It specifies an XML parser error code which is generated from the xml_get_error_code() function.

Return Values: This function returns the XML parser error description for specified error code generated from xml_get_error_code() on success and False on failure.

Note: This function is available for PHP 4.0.0 and newer version.

Below programs illustrate the xml_error_string() function in PHP:
gfg.xml file: 

XML




<?xml version="1.0" encoding="utf-8"?>
<user>
    <username> user123 </username>
    <name> firstname lastname </name>
    <phone> +91-9876543210 </phone>
    <detail> I am John Doe. Live in Kolkata, India. </detail>
</users>


Program 1: 

PHP




<?php
 
// Invalid XML file
$xml_file= 'gfg.xml';
 
// XML parser initialization
$xml_parser = xml_parser_create();
  
// Opening the file in read mode
$file_pointer = fopen($xml_file, 'r');
  
// Reading data from the file stream
while ($xml_data = fread($file_pointer, 4096)) {
   
    // Parsing the data chunk
    if (!xml_parse($xml_parser, $xml_data, feof($file_pointer))) {
       
        // Display error
        die( print "ERROR: " .
         
            // Error string
            xml_error_string(xml_get_error_code($xml_parser)) .
             
            "<br>Error Code: " .
             
            // Error code
            xml_get_error_code($xml_parser) .
             
            "<br>Line: " .
             
            // Line number where the error occurred   
            xml_get_current_line_number($xml_parser) .
             
            "<br>Column: " .
             
            // Column number where the error occurred   
            xml_get_current_column_number($xml_parser) .
             
            "<br>Byte Index: " .
             
            // Byte index where the current byte occurred
            xml_get_current_byte_index($xml_parser) . "<br>"
        );
    }
}
 
// Free to xml parser
xml_parser_free($xml_parser);
 
?>


Output: 

ERROR: Mismatched tag
Error Code: 76
Line: 7
Column: 13
Byte Index: 208

neveropen.xml file:  

XML




<?xml version="1.0 encoding="utf-8"?>
<user>
    <username> user123 </username>
    <name> firstname lastname </name>
    <phone> +91-9876543210 </phone>
    <detail> I am John Doe. Live in Kolkata, India. </detail>
</user>


Program 2: 

PHP




<?php
 
// Invalid XML file
$xml_file= 'neveropen.xml';
 
// XML parser initialization
$xml_parser = xml_parser_create();
  
// Opening the file in read mode
$file_pointer = fopen($xml_file, 'r');
  
// Reading data from the file stream
while ($xml_data = fread($file_pointer, 4096)) {
   
    // Parsing the data chunk
    if (!xml_parse($xml_parser, $xml_data, feof($file_pointer))) {
       
        // Display error
        die( print "ERROR: " .
         
            // Error string
            xml_error_string(xml_get_error_code($xml_parser)) .
             
            "<br>Error Code: " .
             
            // Error code
            xml_get_error_code($xml_parser) .
             
            "<br>Line: " .
             
            // Line number where the error occurred   
            xml_get_current_line_number($xml_parser) .
             
            "<br>Column: " .
             
            // Column number where the error occurred   
            xml_get_current_column_number($xml_parser) .
             
            "<br>Byte Index: " .
             
            // Byte index where the current byte occurred
            xml_get_current_byte_index($xml_parser) . "<br>"
        );
    }
}
 
// Free to xml parser
xml_parser_free($xml_parser);
 
?>


Output: 

ERROR: String not closed expecting " or '
Error Code: 34
Line: 1
Column: 36
Byte Index: 37

Reference: https://www.php.net/manual/en/function.xml-error-string.php
 

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
RELATED ARTICLES

Most Popular

Dominic
32516 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6898 POSTS0 COMMENTS
Nicole Veronica
12014 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12109 POSTS0 COMMENTS
Shaida Kate Naidoo
7019 POSTS0 COMMENTS
Ted Musemwa
7262 POSTS0 COMMENTS
Thapelo Manthata
6976 POSTS0 COMMENTS
Umr Jansen
6965 POSTS0 COMMENTS