Maison développement back-end tutoriel php Comment puis-je analyser et traiter efficacement des fichiers XML volumineux en PHP à l'aide de XMLReader ?

Comment puis-je analyser et traiter efficacement des fichiers XML volumineux en PHP à l'aide de XMLReader ?

Dec 05, 2024 pm 02:19 PM

How Can I Efficiently Parse and Process Large XML Files in PHP Using XMLReader?

Utiliser XMLReader en PHP : un guide complet

XMLReader est un outil PHP inestimable pour analyser et manipuler efficacement les données XML, en particulier pour les grands ensembles de données . Pour vous aider à comprendre ses capacités, nous examinerons un exemple pratique, vous permettant d'extraire le contenu d'un élément et de le stocker dans une base de données.

Scénario et considérations

Imaginons que vous ayez un fichier XML comme celui-ci :

<?xml version="1.0" encoding="ISO-8859-1"?>
<products>
    <last_updated>2009-11-30 13:52:40</last_updated>
    <product>
        <element_1>foo</element_1>
        <element_2>foo</element_2>
        <element_3>foo</element_3>
        <element_4>foo</element_4>
    </product>
    <product>
        <element_1>bar</element_1>
        <element_2>bar</element_2>
        <element_3>bar</element_3>
        <element_4>bar</element_4>
    </product>
</products>
Copier après la connexion

Votre objectif est de récupérer le contenu de chaque élément_1 et de le stocker dans un base de données.

Solution : Utilisation de XMLReader avec SimpleXML

L'approche optimale combine XMLReader pour naviguer dans l'arborescence XML et SimpleXML pour récupérer les données. En tirant parti des deux outils, vous minimisez l’utilisation de la mémoire tout en simplifiant l’accès aux données. Voici comment :

$z = new XMLReader;
$z->open('data.xml');

$doc = new DOMDocument;

// Move to the first <product> node
while ($z->read() && $z->name !== 'product');

// Iterate through <product> nodes until the end of the tree
while ($z->name === 'product') {
    // Create SimpleXMLElement object from the current node
    //$node = new SimpleXMLElement($z->readOuterXML());
    $node = simplexml_import_dom($doc->importNode($z->expand(), true));

    // Access and store data
    var_dump($node->element_1);

    // Move to the next <product> node
    $z->next('product');
}
Copier après la connexion

Considérations relatives aux performances

En fonction de vos besoins, différentes approches offrent des performances variables :

  • XMLReader seulement : Rapide et économe en mémoire, mais complexe et sujet aux erreurs.
  • XMLReader SimpleXML : Utilisation équilibrée de la mémoire et facilité d'utilisation, avec un léger compromis en termes de performances.
  • XMLReader DOM : Utilise légèrement plus de mémoire que SimpleXML, mais plus rapide que la création de SimpleXML objets.

Recommandation

Pour la plupart des scénarios, XMLReader combiné à SimpleXML fournit une solution efficace et simple. L'interface intuitive de SimpleXML simplifie grandement la récupération des données, tandis que XMLReader garantit des performances optimales.

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 de ce site Web
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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

Introduction à l'API Instagram

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Travailler avec les données de session Flash dans Laravel

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Misque de réponse HTTP simplifié dans les tests Laravel

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

12 meilleurs scripts de chat PHP sur Codecanyon

Notifications à Laravel Notifications à Laravel Mar 04, 2025 am 09:22 AM

Notifications à Laravel

See all articles