PHP | xml_get_error_code() Function
Last Updated :
07 Aug, 2021
Improve
The xml_get_error_code() function is an inbuilt function in PHP which is used to return the error code generated by XML parser.
Syntax:
int xml_get_error_code( resource $xml_parser )
Parameters: This function accepts single parameter $xml_parser which is required. It specifies the XML parser which is to be use.
Return Value: This function returns the error code generated by the XML parser on success or False on failure.
Note:
- This function is available for PHP 4.0.0 and newer version.
- These examples may not work on online IDE. So, try to run it on local server or php hosted servers.
gfg.xml (Mismatched tag error):
<?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 1:
<?php
// XML file containing mismatch tags
$xml_file = 'gfg.xml';
// XML parser initialization
$xml_parser = xml_parser_create();
// File opening in read mode
$file_pointer = fopen($xml_file, 'r');
// Reading data from the file stream
while ($xml_data = fread($file_pointer, 4096)) {
// Parse the data chunk
if(!xml_parse($xml_parser, $xml_data,
feof($file_pointer))) {
// Displaying errors
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
geeks.xml file (Error: string not enclosed in double quotes):
<?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
// XML file containing mismatch tags
$xml_file = 'gfg.xml';
// XML parser initialization
$xml_parser = xml_parser_create();
// File opening in read mode
$file_pointer = fopen($xml_file, 'r');
// Reading data from the file stream
while ($xml_data = fread($file_pointer, 4096)) {
// Parse the data chunk
if(!xml_parse($xml_parser, $xml_data,
feof($file_pointer))) {
// Displaying errors
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: 38 Byte Index: 37
Reference: https://www.php.net/manual/en/function.xml-get-error-code.php