PHP - Fonction libxml_use_internal_errors ()

Définition et utilisation

XML est un langage de balisage permettant de partager les données sur le Web, XML est à la fois lisible par l'homme et par machine. La classe libXMLError contient les erreurs générées par la bibliothèque libxml.

Chaque fois qu'il y a une erreur de syntaxe dans le fichier ou la chaîne XML donné. PHP génère une erreur. En utilisant lelibxml_use_internal_errors() fonction, vous pouvez éviter la génération d'erreurs et les récupérer dans le programme si nécessaire, en utilisant les fonctions respectives.

Syntaxe

SimpleXMLElement:: libxml_get_errors();

Paramètres

Sr. Non Paramètre et description
1

use_errors (Optional)

Il s'agit d'une valeur booléenne si vous passez TRUE, la gestion des erreurs est activée et désactivée lorsqu'elle est passée FALSE.

Valeurs de retour

Cette fonction renvoie la valeur précédente du paramètre use_errors.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5 de PHP et fonctionne dans toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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>

Cela produira le résultat suivant -

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
   )
)

Exemple

Voici un autre exemple de cette fonction -

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>

Cela produira la sortie suivante -

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