Lors du traitement des données XML, PHP fournit un ensemble puissant d'extensions d'analyse XML, où XML_PARSE et XML_SET_CHARACTER_DATA_HANDLER sont des outils importants pour analyser les nœuds de texte XML. Ces deux fonctions fonctionnent ensemble pour lire et traiter efficacement le contenu texte dans XML. Cet article utilisera un exemple simple pour montrer comment les utiliser pour analyser les données XML.
xml_parse () est la fonction principale utilisée pour commencer à analyser les données XML. Il reçoit une ressource d'analyse et une chaîne XML sous forme de paramètres, et chaque appel en analyse une partie.
xml_set_character_data_handler () est utilisé pour définir une fonction de rappel qui sera déclenchée lors de la rencontre d'un nœud de texte dans XML. Autrement dit, tout le contenu de texte brut (CDATA) entre les balises sera traité via cette fonction.
Utilisons un exemple pour montrer comment utiliser ces deux fonctions pour extraire le contenu du texte dans XML.
<?php
// 1. Préparer XML Chaîne
$xmlData = <<<XML
<books>
<book>
<title>PHP Pratique de programmation</title>
<author>Zhang San</author>
</book>
<book>
<title>Compréhension approfondie XML</title>
<author>Li si</author>
</book>
</books>
XML;
// 2. Initialiser un XML Analyseur
$parser = xml_parser_create();
// 3. Stocker du contenu de texte extrait
$textContents = [];
// 4. Définir une fonction de rappel qui traite le texte
function handleCharacterData($parser, $data) {
global $textContents;
// Nettoyer des personnages vides
$data = trim($data);
if (!empty($data)) {
$textContents[] = $data;
}
}
// 5. Définir la fonction de traitement des données des caractères
xml_set_character_data_handler($parser, "handleCharacterData");
// 6. Analyse XML données
if (!xml_parse($parser, $xmlData, true)) {
die("XML erreur: " . xml_error_string(xml_get_error_code($parser)));
}
// 7. 释放Analyseur资源
xml_parser_free($parser);
// 8. Sortir le contenu texte extrait
echo "Le contenu texte extrait est le suivant:<br>";
foreach ($textContents as $text) {
echo htmlspecialchars($text) . "<br>";
}
?>
Après avoir exécuté le script PHP ci-dessus, la sortie suivante est:
Le contenu texte extrait est le suivant:
PHP Pratique de programmation
Zhang San
Compréhension approfondie XML
Li si
Cette méthode d'analyse est particulièrement adaptée au traitement de petites données XML, ou lorsque vous souhaitez traiter davantage le contenu du texte entre les balises. Par exemple:
Crawl des titres et du contenu dans les flux RSS;
Parses Réponses XML personnalisées renvoyées de https://api.m66.net/data.xml ;
Extraire le texte dans le fichier de configuration ou le fichier de données, etc.
L'analyseur créé avec xml_parser_create () doit libérer les ressources via xml_parser_free () après utilisation;
Les fonctions de traitement du contenu texte doivent souvent filtrer les caractères d'espace pour éviter les interférences;
L'analyseur XML de PHP est basé sur l'événement et nécessite l'enregistrement de plusieurs fonctions de traitement (telles que XML_SET_Element_Handler ) pour gérer différentes pièces XML.
La combinaison XML_PARSE et XML_SET_CHARACTER_DATA_HANDLER peut gérer le contenu texte dans XML de manière très flexible. Qu'il s'agisse d'une simple extraction de chaînes ou d'un traitement logique complexe, il peut être réalisé grâce à une conception de rappel appropriée.
J'espère que cet article peut vous aider à mieux comprendre comment XML Parses en PHP! Si vous devez combiner davantage des données avec affichage de base de données ou de page Web, vous pouvez continuer à étendre la structure du code pour obtenir des fonctions d'application plus riches.