PHP Les principales fonctions pour un analyseur de fichier xml

XML est un format de documents structurés de données. Cette extension inclut des fonctions pour l'analyse des données XML et de la mise en place d'un analyseur XML qui inclut des gestionnaires d'événements, l'analyse des options et de gestion des erreurs.

HP  fonction xml_set_element_handler()


PHP et XML

Définition et utilisation

La fonction xml_set_element_handler() spécifie les gestionnaires (fonction qui gère un événement) devant être appelées au début et à la fin d'un élément dans le document XML.

La fonction xml_set_element_handler() retourne FALSE si l'analyseur n'est pas valide ou le gestionnaire n'a pas été créé.

Le gestionnaire de départ se déclenche lorsque la balise d'ouverture d'un élément est trouvée ; le gestionnaire de fin se déclenche lorsque la balise de fermeture d'un élément est trouvée par l'analyseur.

Syntaxe

xml_set_element_handler(parser,démérrége,fin)


Paramètre Description
parser Obligatoir . Référence à l'analyseur XML qui utilise cette fonction
démérrége Obligatoir . nom du gestionnaire de démarrage
fin Obligatoir . nom du gestionnaire de fin

La fonction spécifiée par le paramètre « démarrage » doit avoir trois paramètres :


Paramètre Description
parser Obligatoir . Référence à l'analyseur XML qui utilise cette fonction
name Obligatoir . nom de l’élément

  data Obligatoir . Tableau associatif contenant les attributs de l'élément

La fonction spécifiée par le paramètre « fin » doit avoir deux Paramètres :


Paramètre Description
parser Obligatoir . Référence à l'analyseur XML qui utilise cette fonction
name Obligatoir . nom de l’élément


Trucs et astuces

Remarque : Les paramètres de démarrage et fin peuvent également être un tableau contenant une référence d'objet et un nom de méthode.


PHP fonction xml_parser_create() 

Définition et utilisation

La fonction xml_parser_create() crée un analyseur XML.

La fonction xml_parser_create() retourne un handle de ressource pour être utilisé par d'autres fonctions XML succès, ou FALSE si une erreur survient.

La fonction xml_parser_create() crée un nouvel analyseur XML et l'initialise pour l’utilisation. Une référence à un parseur valide doit être créé avant le démarrage de l'analyse. Les encodages possibles sont ISO-8859-1, US-ASCII et UTF-8. Si l'analyseur rencontre des caractères en dehors de ses limites en encodage, il renvoie une erreur.

Syntaxe

xml_parser_create(encoding)


Paramètre Description
encoding En option. Spécifie l'encodage de sortie.

Valeurs possibles :

ISO-8859-1

UTF-8

US-ASCII.

Note : En PHP 5, l'encodage d'entrée est détecté automatiquement. En PHP 4 et versions antérieures, ce paramètre spécifie le codage de caractères pour l'entrée et la sortie

En PHP 5.0.0 et 5.0.1,  l’encodage de sortie par défaut est ISO-8859-1


Trucs et astuces

Astuce : Pour libérer l'analyseur xml, utilisez la fonction xml_parser_free().

Astuce : Pour créer un analyseur XML avec le soutien de l'espace de noms, utilisez la fonction xml_parser_create_ns().


PHP  fonction xml_set_character_data_handler()

Définition et utilisation

La fonction xml_set_character_data_handler() définit le gestionnaire de données des caractères pour l'analyseur XML.

La fonction xml_set_character_data_handler() gère les données pour tout contenu non balisage

La fonction xml_set_character_data_handler() spécifie quelle fonction doit être appelée lorsque l'analyseur détecte des données de caractères dans le fichier XML.

La fonction xml_set_character_data_handler() renvoie la valeur TRUE sur le succès, ou FALSE si une erreur survient.

Syntaxe

xml_set_character_data_handler(parser,handler)


Paramètre Description
parser Obligatoire. Référence à l'analyseur XML qui utilise cette fonction
handler Obligatoire. Nom de la fonction à appelée

La fonction spécifiée par le paramètre « handler » doit avoir deux Paramètres :


Paramètre Description
parser Obligatoire. Référence à l'analyseur XML qui utilise cette fonction
data Obligatoire. Données de type caractère


Trucs et astuces

Remarque : Le paramètre handler peut également être un tableau contenant une référence d'objet et un nom de méthode.


PHP  fonction xml_get_current_line_number()

Définition et utilisation

La fonction xml_get_current_line_number() obtient le numéro de la ligne courante d'un analyseur XML.

La fonction xml_get_current_line_number() renvoie le nombre de ligne actuel passé avec succès, ou FALSE si une erreur survient.

Syntaxe

xml_get_current_line_number(parser)


Paramètre Description
parser Obligatoire . Nom de l’analyseur



PHP fonction xml_error_string() 

Définition et utilisation

La fonction xml_error_string() obtient la description d'erreur XML parser.

La fonction xml_error_string() retourne la description de l'erreur sur le succès, ou FALSE si une erreur survient.

Syntaxe

xml_error_string(errorcode)


Paramètre Description
errorcode Obligatoire. Spécifie le code d'erreur à utiliser. Le code d'erreur est la valeur renvoyée par la fonction xml_get_error_code()


PHP  fonction xml_parser_free()

Définition et utilisation

La fonction xml_parser_free() libère un un analyseur XML.

La fonction xml_parser_free() renvoie la valeur TRUE sur le succès, ou FALSE si une erreur survient.

Syntaxe

xml_parser_free(parser)


Paramètre Description
parser Obligatoire. Nom de l’analyseur à libérer


Trucs et astuces

Astuce : Pour créer un analyseur XML utiliser la fonction xml_parser_create().


Exemple

Le fichier livre.xml utilisé dans cet exemple est le suivant

Sélectionner le code
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<livres>
<titre>XML : Cours et exercices </titre>
<auteur>Alexandre Brillant</auteur>
<description>Cet ouvrage apour but de vous aider à comprendre les techniques XML. L’ouvrage traite XML en profondeur afin de vous faire comprendre la mécanique XML et de vous donner tous les instruments pour travailler efficacement sans perdre le temps dans le jargon parfois inutilement complexe.  </description>
<prix>EUR 28,79</prix>
<lien>http://www.amazon.fr/gp/product/2212126913/ref=as_li_tf_tl?ie=UTF8&camp=1642&creative=6746&creativeASIN=2212126913&linkCode=as2&tag=apprendrecree-21</lien>

<titre>XML par la pratique - Bases indispensables, concepts et cas pratiques (2ième édition)</titre>
<auteur>Thierry BOULANGER</auteur>
<description>Ce livre sur XML est destiné à toute personne concernée par le stockage ou l'échange de données structurées. Il détaille les concepts fondamentaux de XML et s'attache à les présenter au travers de cas pratiques faciles à implémenter. Après la découverte de la syntaxe du langage et les normes de validité d'un document XML, vous serez en mesure de créer vos premiers documents XML en vous appuyant sur les contextes suivants : - Concevoir des documents et des grammaires XML simples, en employant les DTD, les Schémas XML, RELAX NG. - Lier des documents XML entre eux avec Xlink et XPointer. - Extraires les information d'un document XML en réalisant des requêtes XQuery. - Mettre en forme des documents XML grâce à la recommandation XSL (eXtensible StyleSheet Language). - S'initier aux technologies XSLT et XSL-FO et créer un document PDF à partir de données XML. ...</description>
<prix>EUR 25,77</prix>
<lien>http://www.amazon.fr/gp/product/274604644X/ref=as_li_tf_tl?ie=UTF8&camp=1642&creative=6746&creativeASIN=274604644X&linkCode=as2&tag=apprendrecree-21</lien>

<titre>Schémas XML [Broché]</titre>
<auteur>Jean-Jacques Thomasson</auteur>
<description> L'objectif de ce livre est de vous rendre rapidement opérationnel dans la manipulation des schémas XML, qu'il s'agisse d'exploiter des schémas existants, de convertir des DTD en schémas ou de créer des schémas adaptés à vos propres besoins métier.
Acquérir une bonne méthodologie de conception de schémas XML. Vous apprendrez dans une première partie à décrypter les concepts introduits par la recommandation XML Schema du W3C et à les mettre en œuvre à travers des exemples tirés de cas réels. Vous trouverez dans la seconde partie des conseils méthodologiques et des règles de bonnes pratiques pour la conception de schémas, ainsi qu'une présentation de logiciels mettant en œuvre XML Schema.</description>
<prix>EUR 43,32</prix>
<lien>http://www.amazon.fr/gp/product/2212111959/ref=as_li_tf_tl?ie=UTF8&camp=1642&creative=6746&creativeASIN=2212111959&linkCode=as2&tag=apprendrecree-21</lien>
</livres>

 
Sélectionner le code
  
<?php
$parser=xml_parser_create();  
function démérrége($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "TITRE":
    echo "Ttre : ";
    break;
    case "AUTEUR":
    echo "Auteur: ";
    break;
    case "DESCRIPTION":
    echo "Description: ";
    break;
    case "PRIX":
    echo "Prix : ";
    break;
	 case "LIEN":
    echo "URL : ";
    break;
    }
  }

function fin($parser,$element_name)
  {
  echo "<br/>";
  }
  
function char($parser,$data)
  {
  echo $data;
  }

xml_set_element_handler($parser,"démérrége","fin");
xml_set_character_data_handler($parser,"char");
$fp=fopen("livre.xml","r");

while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or 
  die (sprintf("XML Erreur: %s à la ligne %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }

xml_parser_free($parser);
?>        

 

Le résultat du code ci-dessus sera :

Par carabde 30 mars 2015