Dilib, module SxmlNode, commande SxmlGrouping

De Wicri Outils
LogoDilib.gif
Panneau travaux.png
Bibliothèque Dilib (ressources numériques)
Module SxmlNode

Cette commande traite un flot trié d'enregistrements Sxml constitués d'un ensemble de champs. Elle produit des documents Sxml qui regroupent les enregistrement commençant par des suites de champs identiques.

 

Exemples introductifs

Pour faciliter la lecture des exemples, la commande StrDictFromStream est utilisée pour produire des flux tabulés conformes aux recommandations Sxml à partir du séparateur point-virgule (au lieu de la simple tabulation).

Exemple élémentaire

La suite de commandes :

StrDictFromStream <<...  | SxmlGrouping | SxmlIndent
a;b
a;c
x;y
x;z
...

produira :

<g><k>a</k><l><i>b</i><i>c</i></l><f>2</f><t>2</t></g>
<g><k>x</k><l><i>y</i><i>z</i></l><f>2</f><t>2</t></g>

ou avec une indentation :

<g>
  <k>a</k>
  <l>
    <i>b</i>
    <i>c</i>
  </l>
  <f>2</f>
  <t>2</t>
</g>
=============================================
<g>
  <k>x</k>
  <l>
    <i>y</i>
    <i>z</i>
  </l>
  <f>2</f>
  <t>2</t>
</g>
=============================================

Exemple plus complexe

Soit le fichier myFile:

France ; Alsace ; <place>Strasbourg</place>
France ; Lorraine ; <place>Nancy</place>
France ; Lorraine ; <place>Metz</place>

La suite de commandes :

StrDictFromStream -a <myFile  | sort | SxmlGrouping -I | SxmlIndent

produira :

<g>
  <k>France</k>
  <l>
    <g>
      <k>Alsace</k>
      <l>
        <place>Strasbourg</place>
      </l>
      <f>1</f>
      <t>1</t>
    </g>
    <g>
      <k>Lorraine</k>
      <l>
        <place>Metz</place>
        <place>Nancy</place>
      </l>
      <f>2</f>
      <t>2</t>
    </g>
  </l>
  <f>2</f>
  <t>3</t>
</g>

Synopsis

SxmlGrouping -I -i itemTag

Paramètres

-i itemTag
permet de remplacer la balise d'élément (item) de liste implicite (i) par le paramètre.
-I
regroupe directement les éléments de liste avec leurs balises initiales.

Documents produits

Le documents produits sont balisées de la façon suivante :

  • <g> : cet élément introduit un nouveau groupe. Chaque document produit est de ce type. Les groupes peuvent être imbriqués.
  • <k> : cet élément, associé à un groupe, introduit l'élément commun au éléments du groupe. Exemple :
      <g><k>France</k>  ... </g>
  • <l> : Cet élément introduit la liste des éléments du groupe qui peuvent être des groupes ou des items terminaux.
  • <i> : Cet élément introduit un élément terminal (item). Cette balise peut être modifiée ou supprimée en fonction des options -i ou -I.
  • <n> : Cet élément comptabilise le nombre d'éléments de la liste associée à un groupe. Dans l'exemple précédent, dans le groupe associé à la France, il donne le nombre de régions.
  • <t> : Cet élément comptabilise le nombre d'éléments terminaux d'un groupe. Dans l'exemple précédent, dans le groupe associé à la France, il donne le nombre de villes.