Position actuelle: Accueil> Derniers articles> Comment utiliser XML_Parse et PDO pour analyser les données XML dans une base de données

Comment utiliser XML_Parse et PDO pour analyser les données XML dans une base de données

M66 2025-04-26

Dans les applications Web modernes, la diversité des formats de données fait que les développeurs ont souvent besoin de traiter les données XML. Si les données XML sont stockées dans la base de données, nous pouvons utiliser la fonction XML_PARSE de PHP et les opérations de base de données PDO pour atteindre l'analyse et le traitement automatique. Cet article présentera ce processus en détail et comprendra des exemples de code exécutables.

Étape 1: Préparez les données XML dans la base de données

Supposons que nous ayons une base de données MySQL avec un tableau nommé XML_DATA , et la structure est la suivante:

 CREATE TABLE xml_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    xml_content TEXT NOT NULL
);

Insérons des données XML à titre d'exemple:

 INSERT INTO xml_data (xml_content) VALUES 
('<book><title>PHP Pratique de programmation</title><author>Zhang San</author><url>https://m66.net/books/php</url></book>');

Étape 2: Utilisez PDO pour lire les données XML à la base de données

 <?php
$dsn = 'mysql:host=localhost;dbname=test_db;charset=utf8mb4';
$username = 'db_user';
$password = 'db_pass';

try {
    $pdo = new PDO($dsn, $username, $password);
    
    $stmt = $pdo->query("SELECT xml_content FROM xml_data");
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $xml = $row['xml_content'];
        parseXmlWithHandler($xml);
    }

} catch (PDOException $e) {
    echo "La connexion de la base de données a échoué: " . $e->getMessage();
}
?>

Étape 3: Utilisez XML_Parse pour analyser les données XML

XML_PARSE de PHP est un analyseur piloté par des événements. Avant l'utilisation, vous devez définir la fonction d'analyse et le processeur:

 function parseXmlWithHandler($xmlString) {
    $parser = xml_parser_create();

    xml_set_element_handler($parser, "startElement", "endElement");
    xml_set_character_data_handler($parser, "characterData");

    if (!xml_parse($parser, $xmlString, true)) {
        echo "XML Erreur d&#39;analyse: " . xml_error_string(xml_get_error_code($parser));
        return;
    }

    xml_parser_free($parser);
}

function startElement($parser, $name, $attrs) {
    echo "<b>Tag de démarrage:</b> $name<br>";
}

function endElement($parser, $name) {
    echo "<b>Étiquette de fin:</b> $name<br>";
}

function characterData($parser, $data) {
    $trimmed = trim($data);
    if ($trimmed !== '') {
        echo "<b>contenu:</b> $trimmed<br>";
    }
}

Étape 4: Sortie des résultats de l'échantillon

Après avoir exécuté le script ci-dessus, la sortie sera similaire à:

 Tag de démarrage:BOOK
Tag de démarrage:TITLE
contenu:PHP Pratique de programmation
Étiquette de fin:TITLE
Tag de démarrage:AUTHOR
contenu:Zhang San
Étiquette de fin:AUTHOR
Tag de démarrage:URL
contenu:https://m66.net/books/php
Étiquette de fin:URL
Étiquette de fin:BOOK