PHP xml_get_error_code() Function



The PHP XML Parser xml_get_error_code() function is used to get the XML parser error code. It is a built-in method which requires only single parameter to execute the function. And it basically returns the error code on success and false on failure. This function helps in identifing specific XML parsing errors.

Syntax

Below is the syntax of the PHP XML Parser xml_get_error_code() function −

int xml_get_error_code ( XMLParser $xml_parser )

Parameters

This function accepts $xml_parser parameter which is an XML parser reference to get the error code.

Return Value

The xml_get_error_code() function returns the error code on success. And FALSE on failure.

PHP Version

First introduced in core PHP 4, the xml_get_error_code() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

Here is the basic example of the PHP XML Parser xml_get_error_code() function. The program parses a simple, properly generated XML. The function returns false in the absence of an error because the XML has no errors.

<?php
   // Create an XML parser
   $p = xml_parser_create();

   // Parse a well-formed XML
   xml_parse($p, "<root><child>Data</child></root>");

   // Get the error code
   $errorCode = xml_get_error_code($p);
   echo $errorCode ? "Error Code: $errorCode" : "No errors found!";

   // Free the parser
   xml_parser_free($p);
?>

Output

Here is the outcome of the following code −

No errors found!

Example 2

In the below PHP code we will use the xml_get_error_code() function and detect an error when parsing a missing tag XML string. The XML has missing closing </root> tag, so the function returns an error code, e.g., 10 for 'unclosed token'.

<?php
   // Create an XML parser
   $p = xml_parser_create();

   // Parse a malformed XML
   xml_parse($p, "<root><child>Data</child>");

   // Get the error code
   $errorCode = xml_get_error_code($p);
   echo $errorCode ? "Error Code: $errorCode" : "No errors found!";

   // Free the parser
   xml_parser_free($p);
?> 

Output

This will generate the below output −

Error Code: 10

Example 3

This program is helpful for handling large XML files because it divides them into parts, making them easier to manage. It reads XML in parts. If the first part has an error, it displays the error message. If the first part is correct, it checks the second part and displays an error if a problem occurs.

<?php
   // Create an XML parser
   $p = xml_parser_create();

   // Define a large XML string 
   $xmlData = "<root><child>Data";
   $xmlData2 = "</child></root>";

   // Parse the first part
   if (!xml_parse($p, $xmlData, false)) {
      $errorCode = xml_get_error_code($p);
      echo "Error in first part: " . xml_error_string($errorCode);
   } else {
      // Parse the second part
      if (!xml_parse($p, $xmlData2, true)) {
         $errorCode = xml_get_error_code($p);
         echo "Error in second part: " . xml_error_string($errorCode);
      } else {
         echo "XML parsed successfully!";
      }
   }

   // Free the parser
   xml_parser_free($p);
?> 

Output

If both parts are valid, the output will be −

XML parsed successfully!

If the first parts fails, the output will be −

Error in first part: unclosed token

If the first part succeeds but the second part fails so the output is as follows −

Error in second part: unclosed token
php_function_reference.htm
Advertisements