Dilib, module SxPath, protocole SxPathSet

De Wicri Outils
LogoDilib.gif
Panneau travaux.png
Bibliothèque Dilib (ressources numériques)
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.

 

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.