Maison  >  Article  >  développement back-end  >  Plusieurs façons pour PHP d'analyser XML

Plusieurs façons pour PHP d'analyser XML

(*-*)浩
(*-*)浩original
2019-09-12 15:36:433262parcourir

php fournit plusieurs classes ou méthodes pour analyser XML, notamment : l'analyseur XML, SimpleXML, XMLReader et DOMDocument.

Plusieurs façons pour PHP d'analyser XML

XML Expat Parser :

XML Parser utilise l'analyseur XML Expat. Expat est un analyseur basé sur des événements qui traite les documents XML comme une série d'événements. Lorsqu'un événement se produit, il appelle une fonction spécifiée pour le gérer. Expat est un analyseur sans validation qui ignore toute DTD liée au document. (Apprentissage recommandé : Programmation PHP du débutant à compétent)

Cependant, si la forme du document n'est pas bonne, il se terminera par un message d'erreur. Parce qu'il est basé sur des événements et n'a aucune validation, Expat est rapide et adapté aux applications Web.

L'avantage de XML Parser est ses bonnes performances, car il ne charge pas l'intégralité du document XML en mémoire puis le traite, mais le traite tout en l'analysant. Mais c'est précisément pour cette raison qu'il ne convient pas à ceux qui ont besoin d'ajuster dynamiquement la structure XML ou d'effectuer des opérations complexes basées sur la structure du contexte XML.

Si vous souhaitez simplement analyser et traiter un document XML bien structuré, il peut bien accomplir la tâche. Il convient de noter que XML Parser ne prend en charge que trois formats d'encodage : US-ASCII, ISO-8859-1 et UTF-8. Si vos données XML sont dans d'autres encodages, vous devez d'abord les convertir dans l'un des trois ci-dessus.

Il existe généralement deux méthodes d'analyse couramment utilisées de XML Parser (en fait deux fonctions) : xml_parse_into_struct et xml_set_element_handler.

xml_parse_into_struct

Cette méthode analyse les données XML en deux tableaux :

tableau d'index - contient un pointeur vers l'emplacement de la valeur dans le tableau Value

tableau de valeurs - contient les données du XML analysé

SimpleXML

SimpleXML est un ensemble d'outils XML simples et faciles à utiliser fournis après PHP5. des objets faciles à traiter, et vous pouvez également organiser et générer des données XML. Cependant, cela ne s'applique pas aux espaces de noms contenant du XML et le XML doit être bien formé.

Il propose trois méthodes : simplexml_import_dom, simplexml_load_file, simplexml_load_string. Le nom de la fonction explique intuitivement la fonction de la fonction. Les trois fonctions renvoient des objets SimpleXMLElement et les données sont lues/ajoutées via des opérations SimpleXMLElement.

L'avantage de SimpleXML est qu'il est facile à développer. L'inconvénient est qu'il charge l'intégralité du XML dans la mémoire avant le traitement, il peut donc être incapable d'analyser un document XML avec beaucoup de contenu. Si vous lisez de petits fichiers et que le XML ne contient pas d'espace de noms, SimpleXML est un bon choix.

XMLReader

XMLReader est également une extension après PHP5 (installée par défaut après 5.1). Elle se déplace dans le flux du document comme un curseur et s'arrête à chaque nœud. il est très flexible à utiliser. Il fournit un accès en continu rapide et sans mise en cache aux entrées et peut lire un flux ou un document, permettant à l'utilisateur d'en extraire des données et d'ignorer les enregistrements qui n'ont pas de sens pour l'application.

Utilisez DomDocument pour analyser les fichiers XML

Étapes de l'opération :

1, créez des nœuds à l'aide de la méthode createElement,

2, créer du texte Utilisez la méthode createTextNode pour le contenu,

3, ajoutez des nœuds enfants à l'aide de la méthode appendChild,

4, et créez des attributs à l'aide de la méthode createAttribute

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