Dilib, module SxPath, protocole SxPathSet
Module SxPath |
Le protocole SxPathSet regroupe un ensemble de types et de fonctions qui permettent d'accéder à tous les objets désignés par un chemin SxPath.
Liste des modules Dilib
Module SxPath
|
Introduction
Objectifs
Ce protocole est utilisé pour rechercher tous les éléments (ou nœuds Sxml) désigné par un chemin de balises (SxPath) au sein d'un arbre (ou sous-arbre) Sxml.
Exemple
Cette fonction utilise ce protocole pour accéder à tous les pays d'affiliations des auteurs d'un document TEI. Le flot d'entrée est constitué des documents courants des serveurs d'exploration (de type record - ici implicite - avec comme fils un élément TEI).
#include "SxPath.h"
main()
{
SxPathResult *teiPathCountry;
SxmlNode *inputDocument;
teiPathCountry=SxPathSetCompile("TEI/teiHeader/fileDesc/titleStmt/author/affiliation/country");
while((inputDocument=SxmlInputGetDocumentElement()))
{
SxmlNode *countryNode;
SxmlNodeList *countrySet;
countrySet=SxPathSetResultListCreate(teiPathCountry, inputDocument);
SxmlReset(countrySet);
while((countryNode=SxmlNodeListNextNode(countrySet)))
{
printf("%s\n", SxmlLeafText(countryNode));
}
SxmlFree(countrySet);
}
}
Remarque : SxPathSetResultListCreate est un constructeur et la libération de la liste countrySet est impérative pour un flot de document significatif.
Compilation des SxPath en mode Set
Dans la version actuelle de Dilib, la compilation des SxPath est élémentaire.
Fonction SxPathSetCompile
- Synopsis
SxPathResult *SxPathSetCompile(char *str);
- Description
Cette fonction accepte une chaîne de caractères contenant un chemin SxPath et crée un objet Sxml de type SxPathResult adapté au fonctionnement en mode set.
Fonction SxPathSetCompileOnSxml
- Synopsis
SxPathResult *SxPathSetCompileOnSxml(SxmlNode *x1);
- Description
Cette fonction accepte un arbre Sxml contenant un chemin SxPath et crée un objet Sxml de type SxPartResult adapté au fonctionnement en mode set.
Elle est notamment utilisée pour tester l'évaluateur.