Maison  >  Article  >  développement back-end  >  À propos des bases de l'analyseur PHP XML Expat

À propos des bases de l'analyseur PHP XML Expat

jacklove
jackloveoriginal
2018-05-07 14:39:261503parcourir

L'analyseur PHP XML Expat joue un rôle important en PHP. Cet article expliquera en détail ses points de connaissances associés.

Qu'est-ce que XML ?

XML est utilisé pour décrire les données, l'accent étant mis sur la nature des données. Les fichiers XML décrivent la structure des données.

En XML, il n'y a pas de balises prédéfinies. Vous devez définir vos propres balises.

Pour en savoir plus sur XML, visitez notre tutoriel XML.

Qu’est-ce qu’Expat ?

Pour lire et mettre à jour - créer et traiter - un document XML, vous avez besoin d'un analyseur XML.

Il existe deux types de base d'analyseurs XML :

Analyseurs arborescents : cet analyseur convertit un document XML en une structure arborescente. Il analyse l'intégralité du document et donne accès aux éléments de l'arborescence, tels que le modèle objet de document (DOM).

Analyseur basé sur les événements : traitez un document XML comme une série d'événements. Lorsqu'un événement spécifique se produit, l'analyseur appellera la fonction pour le gérer.

L'analyseur Expat est un analyseur basé sur des événements.

Les analyseurs basés sur les événements se concentrent sur le contenu des documents XML plutôt que sur leur structure. Pour cette raison, les analyseurs basés sur des événements sont capables d'accéder aux données plus rapidement que les analyseurs basés sur des arborescences.

Regardez le fragment XML suivant :

66fd2ada9ebb04d4250c850dc1e3737eJani73e20527c4b39a5569bf640e17eb894e

L'analyseur basé sur les événements rapporte le XML ci-dessus sous la forme d'une série de trois événements :

Élément de départ : from

Section de départ CDATA, valeur : Jani

Élément de fermeture : from

L'exemple XML ci-dessus contient du XML bien formé. Toutefois, cette instance n’est pas du XML valide, car aucune déclaration de type de document (DTD) ne lui est associée.

Cependant, cela ne fait aucune différence lors de l'utilisation de l'analyseur Expat. Expat est un analyseur qui ne vérifie pas la validité et ignore toute DTD.

En tant qu'analyseur XML non validé basé sur des événements, Expat est rapide et léger, ce qui le rend idéal pour les applications Web PHP.

Remarque : Le document XML doit être bien formé, sinon Expat générera une erreur.

Installation

La fonction d'analyseur XML Expat fait partie intégrante du noyau PHP. Aucune installation n'est requise pour utiliser ces fonctions.

Fichier XML

Le fichier XML suivant sera utilisé dans notre exemple :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don&#39;t forget me this weekend!</body>
</note>


Initialisation de l'analyseur XML

Nous devons initialiser l'analyseur XML en PHP, définir des gestionnaires pour différents événements XML, puis analyser ce fichier XML.

Instance

<?php
//Initialize the XML parser
$parser=xml_parser_create();
//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case "NOTE":
echo "-- Note --<br>";
break;
case "TO":
echo "To: ";
break;
case "FROM":
echo "From: ";
break;
case "HEADING":
echo "Heading: ";
break;
case "BODY":
echo "Message: ";
}
}
//Function to use at the end of an element
function stop($parser,$element_name)
{
echo "<br>";
}
//Function to use when finding character data
function char($parser,$data)
{
echo $data;
}
//Specify element handler
xml_set_element_handler($parser,"start","stop");
//Specify data handler
xml_set_character_data_handler($parser,"char");
//Open XML file
$fp=fopen("test.xml","r");
//Read data
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or 
die (sprintf("XML Error: %s at line %d", 
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
//Free the XML parser
xml_parser_free($parser);
?>

Le code ci-dessus affichera :

-- Remarque --
À : Tove
De : Jani
En-tête : Rappel
Message : Ne m'oubliez pas ce week-end !

Principe de fonctionnement :

Initialiser l'analyseur XML via la fonction xml_parser_create()

Créer différents Traitement des événements Fonctions du programme

Ajoutez la fonction xml_set_element_handler() pour définir quelle fonction est exécutée lorsque l'analyseur rencontre les balises de début et de fin

Ajoutez la fonction xml_set_character_data_handler() pour définir quand lequel La fonction est exécutée lorsque l'analyseur rencontre des données de caractères

Utilisez la fonction xml_parse() pour analyser le fichier "test.xml"

En cas d'erreur, ajoutez la fonction xml_error_string() à convertir l'erreur XML Pour la description du texte

Appelez la fonction xml_parser_free() pour libérer la mémoire allouée à la fonction xml_parser_create()

Cet article explique en détail les points de connaissances de base de PHP XML Expat analyseur, et vous pourrez en savoir plus. Veuillez suivre le site Web php chinois pour afficher les informations.

Recommandations connexes :

Contenu connexe sur la base de données PHP ODBC

Connaissance connexe de l'instruction PHP MySQL Delete

Contenu associé à l'instruction de mise à jour PHP MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn