La función xml_get_current_column_number() es una función incorporada en PHP que se usa para obtener el número de columna actual de un analizador determinado.
Sintaxis:
int xml_get_current_column_number( resource $xml_parser )
Parámetros: esta función acepta el único parámetro $xml_parser que es obligatorio. Este parámetro contiene la referencia del analizador XML desde el que se obtiene el número de columna.
Valor devuelto: esta función devuelve el número de columna en el que el analizador xml especificado se ejecuta actualmente en caso de éxito o Falso en caso de error.
Nota:
- Esta función está disponible para PHP 4.0.0 y versiones posteriores.
- Es posible que estos ejemplos no funcionen en IDE en línea. Por lo tanto, intente ejecutarlo en un servidor local o en servidores alojados en php.
Archivo gfg.xml:
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>
Programa 1:
PHP
<?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); ?>
Producción:
ERROR: Mismatched tag Error Code: 76 Line: 7 Column: 13 Byte Index: 208
archivo geeks.xml:
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>
Programa 2:
PHP
<?php // XML file containing mismatch tags $xml_file = 'geeks.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); ?>
Producción:
ERROR: String not closed expecting " or ' Error Code: 34 Line: 1 Column: 36 Byte Index: 37
Referencia: https://www.php.net/manual/en/function.xml-get-current-column-number.php