PARSER PHP XML EXPAT


PHP expat XML parser

L'analyseur Expat intégré permet de traiter les documents XML en PHP.

Qu'est-ce que XML?

XML est utilisé pour décrire les données et de se concentrer sur ce que les données sont. Un fichier XML décrit la structure des données.
Dans le langage XML, pas de balises sont prédéfinies. Vous devez définir vos propres balises.
Si vous voulez en savoir plus sur XML, s'il vous plaît visitez notre tutoriel XML .

Qu'est-ce que Expat?

Pour lire et mettre à jour - de créer et de manipuler - un document XML, vous aurez besoin d'un analyseur XML.
Il existe deux types de base de parseurs XML:
  • Arbre basé sur l'analyseur: Cet analyseur transforme un document XML en une structure arborescente. Il analyse l'ensemble du document, et donne accès à des éléments de l'arborescence. par exemple, le Document Object Model (DOM)
  • Basé sur des événements analyseur: Vues d'un document XML comme une série d'événements. Quand un événement spécifique se produit, il appelle une fonction pour y faire face
L'analyseur Expat est un analyseur basé sur les événements.
Basées sur les événements analyseurs concentrer sur le contenu des documents XML, et non leur structure. Pour cette raison, basées sur les événements analyseurs peuvent accéder aux données plus rapide que les analyseurs à base d'arbres.
Regardez la fraction XML suivant:
<from>Jani</from>
Un analyseur basé sur les événements ci-dessus indique le XML comme une série de trois événements:
  • Début élément: à partir de
  • Début de la section CDATA, la valeur: Jani
  • Fermez élément: à partir de
L'exemple XML ci-dessus contient du XML bien formé. Cependant, l'exemple n'est pas du XML valide, car il n'ya pas Document Type Definition (DTD) qui lui est associée.
Toutefois, cela ne fait aucune différence lorsque vous utilisez l'analyseur Expat. Expat est un analyseur non-validant, et ignore les DTD.
Comme un événement basé sur la non-validation de l'analyseur XML, Expat est rapide et léger, et un match parfait pour les applications web PHP.
Remarque: les documents XML doivent être bien formé ou Expat va générer une erreur.

Installation

Les fonctions XML analyseur Expat font partie du coeur de PHP. Il n'y a pas d'installation nécessaire pour utiliser ces fonctions.

Un fichier XML

Le fichier XML ci-dessous 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't forget me this weekend!</body>
</note>


Initialisation de l'analyseur XML

Nous voulons pour initialiser l'analyseur XML en PHP, de définir certains des gestionnaires pour différents événements XML, puis analyser le fichier XML.

Exemple

<?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);
?>
La sortie du code ci-dessus sera:
-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
Comment cela fonctionne:
  1. Initialiser l'analyseur XML avec le xml_parser_create () la fonction
  2. Créer des fonctions à utiliser avec les gestionnaires d'événements différents
  3. Ajouter le xml_set_element_handler () pour spécifier quelle fonction sera exécutée lorsque l'analyseur rencontre des balises d'ouverture et de fermeture
  4. Ajouter le xml_set_character_data_handler () pour spécifier quelle fonction doit s'exécuter lorsque l'analyseur rencontre des données de caractère
  5. Analyser le fichier "test.xml" avec le xml_parse () la fonction
  6. Dans le cas d'une erreur, ajoutez xml_error_string () pour convertir une erreur XML pour une description textuelle
  7. Appelez le xml_parser_free () pour libérer la mémoire allouée à la xml_parser_create () la fonction

Parser Expat Plus PHP

Pour plus d'informations sur les fonctions PHP Expat, visitez notre référence PHP XML Parser.

17 commentaires:

  1. I have read so many articles or reviews about the blogger lovers however this piece of writing is actually a pleasant
    article, keep it up.

    Also visit my web site ... nail fungus treatment

    ReplyDelete
  2. Hi there! This blog post couldn't be written any better! Reading through this article reminds me of my previous roommate! He continually kept talking about this. I am going to forward this article to him. Pretty sure he's going to have
    a good read. Many thanks for sharing!

    Also visit my weblog :: hardwood flooring

    ReplyDelete
  3. Usually I don't learn article on blogs, however I wish to say that this write-up very compelled me to try and do it! Your writing style has been surprised me. Thanks, very great article.

    Also visit my page - discount hardwood floor

    ReplyDelete
  4. It's going to be end of mine day, except before end I am reading this wonderful post to increase my experience.

    Have a look at my web blog: hardwood floors

    ReplyDelete
  5. Fantastic beat ! I wish to apprentice even as you amend your web site, how could i subscribe for a weblog site?
    The account aided me a appropriate deal. I had been a little bit acquainted of this your broadcast offered bright clear
    idea

    Also visit my blog post ... phoenix maid service

    ReplyDelete
  6. Greetings! Very useful advice within this article!
    It's the little changes that make the biggest changes. Many thanks for sharing!

    Check out my webpage; phoenix house cleaning

    ReplyDelete
  7. I always used to study paragraph in news papers but now as I am a user of internet therefore from now I am using net for content, thanks to
    web.
    hardwood flooring

    My webpage ... hardwood floor

    ReplyDelete
  8. You're so interesting! I don't suppose I've truly read through anything like that before. So wonderful to discover another person with unique thoughts on this subject. Seriously.. many thanks for starting this up. This website is something that's
    needed on the internet, someone with some originality!


    Here is my webpage ... provillus for women
    my web site :: provillus information

    ReplyDelete
  9. Do you mind if I quote a few of your posts as long as I
    provide credit and sources back to your webpage? My website is in the exact
    same niche as yours and my users would certainly benefit from a lot of
    the information you present here. Please let me know if this okay with you.
    Appreciate it!

    Take a look at my homepage ... http://www.flooranddecoroutlets.com/glass.html

    ReplyDelete
  10. What's up to every one, since I am truly keen of reading this web site's post to be updated regularly.
    It contains fastidious data.

    Have a look at my site; Sac Louis Vuitton Pas Cher

    ReplyDelete
  11. If some one needs to be updated with newest technologies after that
    he must be pay a visit this web page and be up to
    date every day.

    My web blog ... http://slc-wireless.com/

    ReplyDelete
  12. Aw, this was an incredibly good post. Finding the time and actual effort to generate a really good article… but what
    can I say… I procrastinate a lot and never seem to get anything done.


    my web page :: Louis Vuitton Handbags

    ReplyDelete
  13. Incredible! This blog looks just like my old one! It's on a totally different topic but it has pretty much the same page layout and design. Wonderful choice of colors!

    Feel free to surf to my web-site; More hints

    ReplyDelete
  14. I'm not sure why but this website is loading extremely slow for me. Is anyone else having this problem or is it a issue on my end? I'll check back
    later and see if the problem still exists.

    Here is my web page Tory Burch Handbags

    ReplyDelete
  15. Oh my goodness! Amazing article dude! Many thanks, However
    I am encountering problems with your RSS. I don't understand the reason why I am unable to subscribe to it. Is there anybody having identical RSS problems? Anyone that knows the solution will you kindly respond? Thanx!!

    Also visit my homepage; NFL Cheap Jerseys

    ReplyDelete
  16. certainly like your web-site however you need to check
    the spelling on quite a few of your posts. Many of
    them are rife with spelling problems and I to find it very bothersome
    to tell the reality however I will certainly come again again.


    Look at my site :: Wholesale Jerseys Cheap

    ReplyDelete
  17. Great blog here! Also your web site loads up fast!
    What host are you using? Can I get your affiliate link to
    your host? I wish my web site loaded up as quickly as yours lol

    Here is my weblog; Sac Louis Vuitton

    ReplyDelete

HELLO VISITORS THANKS FOR YOUR VISIT AND COMMENT