Lire un flux de données XML

Problème

Vous voulez lire un flux de données XML provenant d’un fichier qui croît, un tube, une socket...

Solution

Utilisez xmlCreateIOParserCtxt() au lieu de xmlCreateFileParserCtxt() lors de la création du contexte.

Discussion

Dans la recette "Parcourir un document XML avec SAX", nous lisons les données XML depuis un fichier car le contexte a été créé avec xmlCreateFileParserCtxt(). En utilisant à la place xmlCreateIOParserCtxt(), nous pouvons lire le flux XML depuis n’importe quel descripteur de fichiers ouvert. Ainsi, les deux exemples suivants permettent d’ouvrir un fichier en vue de lire son contenu :


ctxt = xmlCreateFileParserCtxt (filename); 
  ctxt->sax = my_sax_handler; 
  ctxt->userData = user_data;
 

et


int fd =  ...
Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Rechercher une donnée dans un document XML (SAX)
Suivant
Transformer un document XML avec XSLT