Position actuelle: Accueil> Derniers articles> xml_parser_get_option recherche des erreurs d'analyse avec xml_error_string

xml_parser_get_option recherche des erreurs d'analyse avec xml_error_string

gitbox 2025-05-29

1. XML_ERROR_STRING - Obtenez un message d'erreur d'analyse XML

La fonction XML_ERROR_STRING est utilisée pour renvoyer les informations de description d'erreur basées sur le code d'erreur. Habituellement, les erreurs d'analyse XML renvoient un code d'erreur. Cette fonction peut convertir le code d'erreur en une chaîne lisible, ce qui nous facilite pour comprendre la cause spécifique de l'erreur.

 <?php
// Exemple de code d&#39;erreur
$error_code = 5;
echo xml_error_string($error_code);  // Sortir:Extra content at the end of the document
?>

2. XML_PARSER_GET_OPTION - Obtenez l'état actuel de l'analyseur XML

xml_parser_get_option permet d'obtenir des informations d'état de l'analyseur actuel, tels que l'emplacement actuel, le numéro de ligne et le numéro de colonne, ce qui est très important pour le positionnement des erreurs.

Les options couramment utilisées incluent:

  • XML_PARSER_OPTION_ERROR_POSITION : Obtenez le décalage de la position lorsque les erreurs d'analyse

  • XML_PARSER_OPTION_LINE_NUMBER : Obtenez le numéro de ligne de l'analyseur actuel

  • Xml_parser_option_column_number : Obtenez le numéro de colonne de l'analyseur actuel


3. Combinaison utilise des exemples

Ce qui suit est un exemple montrant comment utiliser ces deux fonctions pour localiser rapidement le numéro de ligne, le numéro de colonne et la cause des erreurs d'analyse XML.

 <?php
$xml_data = <<<XML
<root>
    <item>Item 1</item>
    <item>Item 2</item>
    <item>Item 3</item> extra
</root>
XML;

$parser = xml_parser_create();

if (!xml_parse($parser, $xml_data, true)) {
    $error_code = xml_get_error_code($parser);
    $error_msg = xml_error_string($error_code);
    $error_line = xml_parser_get_option($parser, XML_PARSER_OPTION_LINE_NUMBER);
    $error_column = xml_parser_get_option($parser, XML_PARSER_OPTION_COLUMN_NUMBER);

    echo "XML Erreur d&#39;analyse:{$error_msg}\n";
    echo "L&#39;erreur s&#39;est produite dans le {$error_line} D&#39;ACCORD,1 et 1 {$error_column} Liste\n";
}

xml_parser_free($parser);
?>

Analyse:

  • Ce code essaie d'analyser un XML avec une erreur.

  • Lorsque XML_PARSE renvoie faux, cela signifie que l'analyse a échoué.

  • Obtenez le code d'erreur via xml_get_error_code .

  • Utilisez XML_ERROR_STRING pour obtenir le message d'erreur correspondant.

  • Utilisez xml_parser_get_option pour obtenir le mauvais numéro de ligne et numéro de colonne pour localiser avec précision le problème.

  • Enfin, relâchez les ressources de l'analyseur.


4. Résumé

  • À l'aide de XML_ERROR_STRING , vous pouvez convertir les codes d'erreur en informations d'erreur lisibles par l'homme.

  • Localisez rapidement les erreurs en obtenant l'état de l'analyseur actuel (en particulier les numéros de ligne et de colonne) via XML_PARSER_GET_OPTION .

  • La combinaison des deux peut considérablement améliorer l'efficacité des erreurs d'analyse XML de débogage.

La maîtrise de l'utilisation de ces deux fonctions vous permet de trouver rapidement le problème lorsque l'on fait face à des exceptions d'analyse XML, de gagner du temps de débogage et d'améliorer l'efficacité du développement.