PHP - Función libxml_use_internal_errors ()

Definición y uso

XML es un lenguaje de marcado para compartir los datos a través de la web, XML es legible tanto para humanos como para máquinas. La clase libXMLError contiene los errores lanzados por la biblioteca libxml.

Siempre que haya un error de sintaxis en el archivo o cadena XML dado. PHP genera un error. Utilizando ellibxml_use_internal_errors() función puede evitar la generación de errores y buscarlos en el programa según sea necesario, utilizando las funciones respectivas.

Sintaxis

SimpleXMLElement:: libxml_get_errors();

Parámetros

No Señor Descripción de parámetros
1

use_errors (Optional)

Este es un valor booleano si pasa TRUE, el manejo de errores se habilita y deshabilita cuando pasa FALSE.

Valores devueltos

Esta función devuelve el valor anterior del parámetro use_errors.

Versión PHP

Esta función se introdujo por primera vez en PHP Versión 5 y funciona en todas las versiones posteriores.

Ejemplo

El siguiente ejemplo demuestra el uso de la función libxml_use_internal_errors ().

<html>
   <head>
      <body>
         <?php
            libxml_use_internal_errors(true);
            $str = "<Data xmlns:ns='http://test.com/data'> 
               <Employee> 
                  <ns:Name>Krishna</ns:Name> 
                  <Age>30</Age> 
                  <City>Hyderabad</City> 
               </Employeee> 
        
               <Employee> 
                  <ns:Name>Ramu</ns:Name>
                  <Age>25</Age> 
                  <City>Delhi</test> 
               </Employee>    
            </Data> "; 
            $doc = simplexml_load_string($str);
            if ($doc === false) {
               $errors = libxml_get_errors();	
               print("Errors: ");			
               print_r($errors);
               echo "<br><br>";
            }
         ?>      
      </body>
   </head>   
</html>

Esto producirá el siguiente resultado:

Errors: Array (
   [0] => LibXMLError Object (
      [level] => 3 [code] => 76 
      [column] => 30 
      [message] => Opening and ending tag mismatch: Employee line 2 and Employeee 
      [file] => 
      [line] => 6
   ) 
   [1] => LibXMLError Object ( 
      [level] => 3 
      [code] => 76 
      [column] => 31 
      [message] => Opening and ending tag mismatch: City line 2 and test 
      [file] => 
      [line] => 11 
   )
)
Errors: Array (
   [0] => LibXMLError Object (
      [level] => 3 
      [code] => 76 
      [column] => 30 
      [message] => Opening and ending tag mismatch: Employee line 2 and Employeee 
      [file] => 
      [line] => 6
   )
)

Ejemplo

A continuación se muestra otro ejemplo de esta función:

data.xml:

<Tutorials>
   <Tutorial>
      <Name>JavaFX</Name>
      <Pages>535</Pages>
      <Author>Krishna</Author>
      <Version>11<Version>
   </Tutorial>

   <Tutorial>
      <Name>CoffeeScript</Name>
      <Pages>235</Pages>
      <Author>Kasyap</test>
      <Version>2.5.1</Version>
   </Tutorial>
   
   <Tutorial>
      <Name>OpenCV</Name>
      <Pages>150</Pages>
      <Author>Maruti</Author>
      <Version></Version>
   </Tutorial>
</Tutorials>

Sample.html

<html>
   <head>      
      <body>         
         <?php
            libxml_use_internal_errors(true);
            $xml = simplexml_load_file("data.xml");
            if ($xml === false) {
               $error = libxml_get_last_error();	
               print("Error: ");			
               print_r($error);
               echo "<br><br>";         
            }  		   
         ?>
      </body>
   </head>
</html>

Esto producirá el siguiente resultado:

Error: LibXMLError Object ( 
   [level] => 3 
   [code] => 74 
   [column] => 13 
   [message] => EndTag: ' trail.xml 
   [line] => 23 
)