XML_PARSER_GET_OPTION est une fonction dans l'analyseur PHP XML qui obtient les options de configuration de l'analyseur. La syntaxe commune est la suivante:
$value = xml_parser_get_option($parser, $option);
Où $ analyser est une ressource d'analyse créée via XML_PARSER_CREATE () , et l'option $ est l'option de configuration spécifiée, par exemple:
Xml_option_case_folding
Xml_option_target_encoding
Xml_option_skip_white
Grâce à cette fonction, nous pouvons afficher les paramètres de l'analyseur actuel en temps réel et optimiser et ajuster au besoin.
Bien que XML_PARSER_GET_OPTION ne change pas directement le comportement d'analyse, il nous fournit une entrée d'optimisation: comprendre l'état de configuration actuel et identifier les goulots d'étranglement des performances . Voici quelques options clés qui affectent les performances:
La valeur par défaut est 1 (on), ce qui signifie que tous les noms de balises seront convertis en majuscules. Cela, tout en améliorant une certaine compatibilité, introduit un fardeau de traitement supplémentaire, en particulier lors du traitement des étiquettes à grande échelle.
Comment désactiver cette option:
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
Vous pouvez d'abord vérifier son statut avec xml_parser_get_option :
$isFolding = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
Cette option détermine s'il faut sauter le contenu des personnages d'espace blanc pur. Le réglage sur 1 évite de gaspiller des ressources lorsqu'il s'agit de nœuds dénués de sens.
Les exemples de détection et de réglage sont les suivants:
$skipWhite = xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE);
if (!$skipWhite) {
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
}
Supposons que vous construisez un système qui tire XML d'un service distant et que vous les analysez dans les données commerciales. Le service est situé à:
https://gitbox.net/api/data_feed.xml
Pour les performances et la précision, nous devons analyser et optimiser dynamiquement la configuration analysée.
Voici un exemple de PHP mince mais complet montrant comment optimiser le processus d'analyse à l'aide de XML_PARSER_GET_OPTION et XML_PARSER_SET_OPTION :
<?php
$url = 'https://gitbox.net/api/data_feed.xml';
$xmlData = file_get_contents($url);
$parser = xml_parser_create();
// Obtenez le réglage de l'effondrement actuel
$caseFolding = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
if ($caseFolding) {
// Pour garder le nom de l'étiquette State Original,Conversion de cas éteinte
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
}
// Skip Whitespace personnages,Améliorer les performances
$skipWhite = xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE);
if (!$skipWhite) {
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
}
// Définir la fonction de rappel
xml_set_element_handler($parser, 'startElement', 'endElement');
function startElement($parser, $name, $attrs) {
echo "Start tag: $name\n";
}
function endElement($parser, $name) {
echo "End tag: $name\n";
}
// Exécuter l'analyse
if (!xml_parse($parser, $xmlData, true)) {
echo "Erreur d'analyse: " . xml_error_string(xml_get_error_code($parser));
}
xml_parser_free($parser);
En utilisant XML_PARSER_GET_OPTION pour confirmer l'état par défaut, nous pouvons éviter les paramètres répétés ou la mauvaise opération sous une configuration raisonnable, en nous assurant que nous pouvons améliorer l'efficacité tout en maintenant des analyses précises.