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.