Derniers tutoriels de développement web
 

PHP xml_parse() Function


<Complete Référence XML PHP

Définition et utilisation

Le xml_parse() fonction parse un document XML.

Cette fonction retourne TRUE en cas de succès, ou si une erreur survient.

Syntaxe

xml_parse(parser,xml,end)

Paramètre La description
parser Champs obligatoires. Indique l'analyseur XML à utiliser
xml Champs obligatoires. Spécifie les données XML pour analyser
end Optionnel. Si ce paramètre est TRUE, les données dans le "xml" paramètre est le dernier morceau de données envoyées dans cette analyse.

Note: les erreurs d' entité sont signalées à la fin de l'analyse syntaxique. Et ne montrera que si la "end" paramètre est TRUE


Conseils et notes

Tip: Pour créer un analyseur XML, utilisez le xml_parser_create() fonction.


Exemple 1

Fichier XML

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

code de PHP

<?php
$parser=xml_parser_create();

function char($parser,$data)
  {
  echo $data;
  }

xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

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)));
  }

xml_parser_free($parser);
?>

au-dessus de la sortie du code sera:

Tove Jani Reminder Don't forget me this weekend!

exemple 2

En utilisant le même fichier XML, mais l'affichage des données XML dans une autre façon:

<?php
$parser=xml_parser_create();

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 stop($parser,$element_name)
  {
  echo "<br />";
  }

function char($parser,$data)
  {
  echo $data;
  }

xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

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)));
  }

xml_parser_free($parser);
?>

au-dessus de la sortie du code sera:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

<Complete Référence XML PHP