Position actuelle: Accueil> Derniers articles> Utilisez XML_Parse pour analyser les attributs et les éléments dans les fichiers XML

Utilisez XML_Parse pour analyser les attributs et les éléments dans les fichiers XML

M66 2025-05-13

Dans PHP, l'analyse des fichiers XML est un moyen courant de gérer les fichiers d'échange de données et de configuration. La fonction XML_PARSE () est une méthode d'analyse XML dirigée par des événements fournie par PHP. En combinant d'autres fonctions d'analyser, des éléments et des attributs dans les fichiers XML peuvent être lus. Cet article vous mènera étape par étape pour comprendre comment utiliser xml_parse () pour analyser XML et extraire le contenu de l'élément et l'attribut des informations.

1. Préparez un exemple de fichier XML

Nous préparons d'abord un exemple XML simple pour les exercices d'analyse. Supposons que le fichier est nommé example.xml , le contenu est le suivant:

 <?xml version="1.0" encoding="UTF-8"?>
<books>
    <book id="101" genre="fiction">
        <title>PHP commencer</title>
        <author>Zhang San</author>
    </book>
    <book id="102" genre="programming">
        <title>Compréhension approfondie PHP</title>
        <author>Li si</author>
    </book>
</books>

2. Créez un analyseur XML et configurez les fonctions de traitement

L'analyse XML de PHP utilise une approche basée sur des événements. Nous devons définir plusieurs gestionnaires et les lier à l'analyseur.

 <?php

$parser = xml_parser_create();

function startElement($parser, $name, $attrs) {
    echo "Élément de démarrage: $name\n";
    if (!empty($attrs)) {
        echo "propriété:\n";
        foreach ($attrs as $key => $value) {
            echo " - $key = $value\n";
        }
    }
}

function endElement($parser, $name) {
    echo "Élément final: $name\n";
}

function characterData($parser, $data) {
    $data = trim($data);
    if (!empty($data)) {
        echo "contenu: $data\n";
    }
}

// Fonction de traitement de liaison
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");

3. Lire et analyser le contenu XML

Maintenant, nous lisons le fichier example.xml et l'analyons à l'aide d'un analyseur:

 $fp = fopen("example.xml", "r");
if (!$fp) {
    die("Impossible d&#39;ouvrir le fichier");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($parser, $data, feof($fp))) {
        die(sprintf(
            "XML erreur: %s Dans le %d D&#39;ACCORD",
            xml_error_string(xml_get_error_code($parser)),
            xml_get_current_line_number($parser)
        ));
    }
}

xml_parser_free($parser);
fclose($fp);
?>

Après avoir exécuté le script, le terminal sortira le début et la fin de chaque élément, les attributs et les valeurs à leur tour. Par exemple:

 Élément de démarrage: BOOKS
Élément de démarrage: BOOK
propriété:
 - ID = 101
 - GENRE = fiction
Élément de démarrage: TITLE
contenu: PHP commencer
Élément final: TITLE
Élément de démarrage: AUTHOR
contenu: Zhang San
Élément final: AUTHOR
Élément final: BOOK
...

4. Utiliser dans des applications pratiques

Grâce à la fonction xml_parse () combinée à la fonction de processeur, nous pouvons contrôler librement comment extraire les données, et même enregistrer les résultats analysés dans la base de données, ou générer la page HTML correspondante, telle que:

 echo "<a href='https://m66.net/book.php?id=101'>Vérifier《PHP commencer》</a>";

Cette méthode est très pratique pour personnaliser le processus de lecture des données.

5. Résumé

xml_parse () fournit un moyen léger et rapide pour analyser les données XML. Bien qu'il soit plus sous-jacent que le Parser Dom, c'est un choix très approprié pour les situations où les exigences de performance sont élevées ou des structures de données sont connues. La maîtrise de l'analyse axée sur les événements vous aidera également à comprendre plus profondément la structure et le mécanisme de traitement des données des fichiers XML.