---
name: "MLV_xml.h"
section: "3"
platform: "linux"
package: "libmlv3-dev"
version: "3.1.0-8"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/MLV_xml.h"
---

# MLV\_xml.h(3)

Ce fichier définit les prototypes des fonctions permettant de lire des fichiers xml.

## NAME

MLV\_xml.h - Ce fichier définit les prototypes des fonctions permettant de lire des fichiers xml.

## SYNOPSIS

### Définitions de type

typedef struct \_MLV\_Xml **MLV\_Xml**\
 Définit le type de donnée stockée au format xml dans la bibliothèque MLV.

### Énumérations

enum **MLV\_Xml\_error** { **MLV\_XML\_NONE**, **MLV\_XML\_THE\_FIELD\_DOESNT\_EXIST**, **MLV\_XML\_THE\_FIELD\_IS\_NOT\_A\_REAL**, **MLV\_XML\_THE\_FIELD\_IS\_NOT\_AN\_INTEGER**, **MLV\_XML\_THE\_FIELD\_IS\_TOO\_BIG** }\
 Énumère les différents codes d'erreurs que l'on peut rencontrer lorsque l'ordinateur lit un document xml.

### Fonctions

**MLV\_Xml** \* **MLV\_load\_xml** (const char \*xml\_file\_path)\
 Charge en mémoire un fichier au format xml.  void **MLV\_free\_xml** (**MLV\_Xml** \*xml\_data)\
 Libère la mémoire utilisée par les données du fichier xml.  **MLV\_Xml\_error** **MLV\_get\_string\_value\_from\_xml** (const **MLV\_Xml** \*xml\_data, char \*\*result, const char \*xpath,...)\
 Permet d'accéder à l'interieur d'un champs donné du fichier xml.  **MLV\_Xml\_error** **MLV\_get\_integer\_value\_from\_xml** (const **MLV\_Xml** \*xml\_data, int \*result, const char \*xpath,...)\
 Permet de récupérer l'entier d'un champs donné du fichier xml.  **MLV\_Xml\_error** **MLV\_get\_double\_value\_from\_xml** (const **MLV\_Xml** \*xml\_data, double \*result, const char \*xpath,...)\
 Permet de récupérer le reel d'un champs donné du fichier xml.  **MLV\_Xml\_error** **MLV\_get\_float\_value\_from\_xml** (const **MLV\_Xml** \*xml\_data, float \*result, const char \*xpath,...)\
 Permet de récupérer le réel d'un champs donné du fichier xml.  int **MLV\_get\_number\_of\_objects\_from\_xml** (const **MLV\_Xml** \*xml\_data, const char \*xpath,...)\
 Compte le nombre d'objets présents dans le fichier xml verifiant un certain nombre de critères passés en paramètre de la fonction.  **MLV\_Xml** \* **MLV\_get\_xml\_object\_of** (const **MLV\_Xml** \*xml\_data, const char \*xpath,...)\
 Permet de récupérer un noeud interne de l'arbre représentant le fichier XML.  void **MLV\_print\_xml** (const **MLV\_Xml** \*xml\_data)\
 Écrit sur le terminal le contenu d'un fichier xml.

## Description détaillée

Ce fichier définit les prototypes des fonctions permettant de lire des fichiers xml.

**Auteur**

Adrien Boussicault

Marc Zipstein

Les fichiers xml sont utilisés pour stocker les données nécessaires au fonctionnement d'un programme. Ils permettent de modifier facilement l'exécution du programme sans avoir à le modifier. En effet, ils sont lisibles par l'homme et par la machine en même temps. Ils constituent donc une interface pratique entre l'ordinateur et l'utilisateur.

## Documentation du type de l'énumération

### enum MLV\_Xml\_error

Énumère les différents codes d'erreurs que l'on peut rencontrer lorsque l'ordinateur lit un document xml.

**Valeurs énumérées**

- *MLV\_XML\_NONE*

  *Aucune erreur detectée.*

- *MLV\_XML\_THE\_FIELD\_DOESNT\_EXIST*

  *Le champs n'existe pas dans le document xml.*

- *MLV\_XML\_THE\_FIELD\_IS\_NOT\_A\_REAL*

  *Le champs ne contient pas une chaîne de caractères codant un reel.*

- *MLV\_XML\_THE\_FIELD\_IS\_NOT\_AN\_INTEGER*

  *Le champs ne contient pas un chaîne de caractères codant un entier.*

- *MLV\_XML\_THE\_FIELD\_IS\_TOO\_BIG*

  *La chaîne code un réel/entier trop long pour être stocké dans la variable.*

## Documentation des fonctions

### void MLV\_free\_xml (MLV\_Xml \* xml\_data)

*Libère la mémoire utilisée par les données du fichier xml.*

**Paramètres**

*xml\_data Les données xml a supprimer.*

**Exemples** **advanced/10\_read\_xml\_file.c***.*

### MLV\_Xml\_error MLV\_get\_double\_value\_from\_xml (const MLV\_Xml \* xml\_data, double \* result, const char \* xpath, ...)

*Permet de récupérer le reel d'un champs donné du fichier xml. Tout comme la fonction* **MLV\_get\_string\_value\_from\_xml()***, cette fonction peut contenir un nombre variable de paramètres. Pour plus d'informations, veuillez lire la documentation de la fonction* **MLV\_get\_string\_value\_from\_xml()***.*

**Paramètres**

*xml\_data Les données xml.* \
 *result Un pointeur vers un réel dans lequel le résultat de la fonction sera enregistré.* \
 *xpath Le chemin d'accès.*

**Renvoie**

*renvoie un code d'erreur (voir MLV\_Xml\_error) si la fonction n'a pas reussie à extraire la donnée souhaitée du document xml.*

**Exemples** **advanced/10\_read\_xml\_file.c***.*

### MLV\_Xml\_error MLV\_get\_float\_value\_from\_xml (const MLV\_Xml \* xml\_data, float \* result, const char \* xpath, ...)

*Permet de récupérer le réel d'un champs donné du fichier xml. Tout comme la fonction* **MLV\_get\_string\_value\_from\_xml()***, cette fonction peut contenir un nombre variable de paramètres. Pour plus d'informations, veuillez lire la documentation de la fonction* **MLV\_get\_string\_value\_from\_xml()***.*

**Paramètres**

*xml\_data Les données xml.* \
 *result Un pointeur vers un réel dans lequel le résultat de la fonction sera enregistré.* \
 *xpath Le chemin d'accès.*

**Renvoie**

*renvoie un code d'erreur (voir MLV\_Xml\_error) si la fonction n'a pas reussie à extraire la donnée souhaitée du document xml.*

### MLV\_Xml\_error MLV\_get\_integer\_value\_from\_xml (const MLV\_Xml \* xml\_data, int \* result, const char \* xpath, ...)

*Permet de récupérer l'entier d'un champs donné du fichier xml. Tout comme la fonction* **MLV\_get\_string\_value\_from\_xml()***, cette fonction peut contenir un nombre variable de paramètres. Pour plus d'informations, veuillez lire la documentation de la fonction* **MLV\_get\_string\_value\_from\_xml()***.*

**Paramètres**

*xml\_data Les données xml.* \
 *result Un pointeur vers un entier dans lequel le résultat de la fonction sera enregistré.* \
 *xpath Le chemin d'accès.*

**Renvoie**

*renvoie un code d'erreur si la fonction n'a pa reussie à extraire la donnée souhaitée du document xml.*

**Exemples** **advanced/10\_read\_xml\_file.c***.*

### int MLV\_get\_number\_of\_objects\_from\_xml (const MLV\_Xml \* xml\_data, const char \* xpath, ...)

*Compte le nombre d'objets présents dans le fichier xml verifiant un certain nombre de critères passés en paramètre de la fonction.*

**Paramètres**

*xml\_data Les données xml.* \
 *xpath Le chemin d'accès.* \
 *... Les paramètres de la fonction.*

**Renvoie**

*Cette fonction renvoie le nombre d'objet ayant pour chemin d'accès 'xpath'.*

**Exemples** **advanced/10\_read\_xml\_file.c***.*

### MLV\_Xml\_error MLV\_get\_string\_value\_from\_xml (const MLV\_Xml \* xml\_data, char \*\* result, const char \* xpath, ...)

*Permet d'accéder à l'interieur d'un champs donné du fichier xml. Cette fonction peut contenir un nombre variable de paramètres. Comme avec la fonction printf les paramètres suplémentaires, situées après le paramètre xpath, permettent de construire des requêtes xpath évolué.*

*Par exemple,*

```
int id_batiment = 2;
char * type_salle = "informatique"
int id_salle = 4;
char* nom_salle;
MLV_get_string_value_from_xml(
        xml_data, &(nom_salle),
     "/batiment[%d]/salle[type=%s][%d]/nom",
     id_batiment, type_salle, id_salle
)
free( nom_salle ); // on oublie pas de libérer la mémoire après avoir
                   // utilisé nom_salle
```

*permet de recupérer le contenu du champs 'nom' situé dans la 4eme salle informatique du 2eme batiment.*

*Attention: Il ne faut pas oublier de libérer la mémoire associée au champs result.*

**Paramètres**

*xml\_data Les données xml.* \
 *result Un pointeur vers une addresse vide qui contiendra l'addresse de la chaîne de caractères correspondant au résultat de la fonction.* \
 *xpath Le chemin d'accès.*

**Renvoie**

*renvoie un code d'erreur si la fonction n'a pa reussie à extraire la donnée souhaitée du document xml.*

**Exemples** **advanced/10\_read\_xml\_file.c***.*

### MLV\_Xml \* MLV\_get\_xml\_object\_of (const MLV\_Xml \* xml\_data, const char \* xpath, ...)

*Permet de récupérer un noeud interne de l'arbre représentant le fichier XML. Cette fonction n'est pas encore implémentée.*

**Paramètres**

*xml\_data Les données xml.* \
 *xpath Le chemin d'accès.* \
 *... Les paramètres de la fonction.*

**Renvoie**

*Un noeud interne de l'arbre XML.*

### MLV\_Xml \* MLV\_load\_xml (const char \* xml\_file\_path)

*Charge en mémoire un fichier au format xml. Cette fonction renvoi NULL, lorsque le fichier n'a pas pu être correctement chargé.*

**Paramètres**

*xml\_file\_path Chemin d'accès du fichier xml.*

**Renvoie**

*Le fichier xml lu, analysé et chargé.*

**Exemples** **advanced/10\_read\_xml\_file.c***.*

### void MLV\_print\_xml (const MLV\_Xml \* xml\_data)

*Écrit sur le terminal le contenu d'un fichier xml. Cette fonction n'est pas encore implémentée.*

**Paramètres**

*xml\_data Les données xml.* \
 *... Les paramètres de la fonction.*

## Auteur

*Généré automatiquement par Doxygen pour MLV-3.1.0 à partir du code source.*
