Les erreurs d'analyse sont l'un des problèmes courants lors de l'utilisation de PHP pour traiter les données XML. Pour aider les développeurs à localiser plus facilement les problèmes, PHP fournit deux fonctions très pratiques: xml_get_error_code () et xml_error_string () . Ces deux fonctions peuvent être utilisées en combinaison pour produire des informations d'erreur détaillées, nous aidant à trouver rapidement les erreurs de structure ou de syntaxe de XML.
Cet article utilisera des exemples pour expliquer comment utiliser ces deux fonctions pour produire des informations détaillées sur les erreurs XML.
xml_get_error_code (ressource $ analyser): int
Cette fonction est utilisée pour renvoyer le code d'erreur pour la dernière erreur dans l'analyseur spécifié.
xml_error_string (int $ code): chaîne
Cette fonction reçoit un code d'erreur et renvoie la chaîne de message d'erreur correspondante.
Ces deux fonctions sont généralement utilisées avec xml_parse () pour fournir des rapports d'erreur clairs lorsque l'analyse XML échoue.
Voici un exemple complet de l'utilisation de ces deux fonctions:
<code> & lt ;? Php // Définir des données XML contenant des erreurs
$ xml = '<books>
<book>
<Title> Guide XML </TITME>
<auteur> John Doe </auteur>
</ réserver
</ books> '; // Remarque: la balise </ book> est incomplète, ce qui entraînera des erreurs d'analyse
// Créer un analyseur XML
$ parser = xml_parser_create ();
// Le traitement par défaut est interdit d'éviter la sortie du contenu
xml_set_element_handler ($ parser, function () {}, function () {});
// Essayez d'analyser XML
if (! xml_parse ($ analyser, $ xml, true)) {
$ errorcode = xml_get_error_code ($ parser);
$ errorMessage = xml_error_string ($ errorcode);
$ lineNumber = xml_get_current_line_number ($ parser);
$ ColumnNumber = xml_get_current_column_number ($ parser);
echo "XML Erreur d'analyse:\n";
echo "message d'erreur: " . $errorMessage . "\n";
echo "Code d'erreur: " . $errorCode . "\n";
echo "Numéro de ligne: " . $lineNumber . "\n";
echo "Numéro de ligne: " . $columnNumber . "\n";
} autre {
Echo "l'analyse XML a réussi. \ n";
}
// Libérer les ressources d'analyse
xml_parser_free ($ analyser);
?>
</code>
Après avoir exécuté le script ci-dessus, s'il y a une erreur de syntaxe dans le XML, comme la fermeture de balises manquante, vous verrez la sortie suivante:
XML Erreur d'analyse:
message d'erreur: mismatched tag
Code d'erreur: 76
Numéro de ligne: 6
Numéro de ligne: 1
Ces informations sont très utiles pour localiser rapidement des problèmes, tels que la ligne, la colonne et le type d'erreur spécifique.
Erreur Logging <br> Ces messages d'erreur peuvent être écrits dans les fichiers journaux pour faciliter les problèmes de dépannage dans l'environnement de production:
<code> file_put_contents ('/ var / log / xml_errors.log', date ('c'). "- $ errorMessage à la ligne $ lineNumber, colonne $ collumnnumber \ n", file_append); </code>Combiné avec une erreur de l'info-bulle avant <br> Si votre projet est un outil de vérification XML en ligne, par exemple, en fournissant des formulaires frontaux sur la page https://gitbox.net/xml-validator , vous pouvez utiliser le code ci-dessus pour le vérifier dans le back-end et renvoyer le message d'erreur à l'affichage frontal à afficher.
Grâce aux fonctions xml_get_error_code () et xml_error_string () , nous pouvons identifier avec précision des problèmes spécifiques dans le processus d'analyse XML. Cela aide non seulement à déboguer les erreurs, mais aussi à améliorer la capacité du système à gérer les exceptions. Lors du développement d'applications impliquant un échange de données XML, il est fortement recommandé d'utiliser ces fonctions.