Dilib, module SxmlNode, commande SxmlGrouping
De Wicri Outils
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.
Liste des modules Dilib
Module SxmlNode
|
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.