6.2. Widget Xpath personnalisé

Le widget Xpath personnalisé permet de récupérer des éléments du document XML qui ne sont pas disponibles dans les widgets liés à un élément particulier.

Xpath est un langage permettant d'identifier les éléments d'une structure XML. Le paramétrage du widget consiste à composer un chemin d'accès pour l'élément du document XML. Ce chemin est constitué des nœuds (éléments, attributs, instructions de traitement, etc.) liés entre eux par des expressions de chemin.

Figure 28. Exemple du chemin d'accès

Exemple du chemin d'accès

[Note]

L'utilisation des types d'expressions de chemin est décrite dans Tableau 1, « Expressions de chemin les plus courantes ».

Le bloc Information dans l'éditeur WXE contient des informations qui ne sont pas publiées par défaut. Le widget Xpath personnalisé permet de les publier.

Les éléments qui peuvent être récupérés dans la feuille de style via xpath, doivent également être placés dans le bloc Information du document XML :

Figure 29. Exemple du bloc Information et ses contenus

Exemple du bloc Information et ses contenus

Procédure 49. Pour composer le xpath :

  1. Dans le bloc Information, sélectionnez l'élément souhaité.

  2. Dans le Contexte, repérez le nom de cet élément.

    Figure 30. Exemple du nom d'élément dans le Contexte

    Exemple du nom d'élément dans le Contexte

    [Note]

    Ces noms font partie de la convention du nommage selon le standard DocBook et s'affichent dans l'infobulle en survolant chaque élément.

  3. Dans le studio, faites glisser le widget dans la zone de prévisualisation.

  4. Dans son encart sur le panneau à droite, dans le champ XPath du studio, placez les nœuds représentés par les noms des éléments. Précédez chaque nom par d: et séparez par /. Puisque les éléments sont placés dans le bloc Information, le chemin d'accès commencera par d:info/.

    [Important]

    Pour les éléments xpath dans l'en-tête ou le pied de page, le chemin d'accès doit commencer par /*/.

    Cela permet à la feuille de style de récupérer l'élément pour toutes les séquences de pages générées par les éléments de structure (chapitres, sections, préface, etc.) présents dans le document.

    Figure 31. Exemple du chemin de localisation dans l'en-tête ou le pied de page

    Exemple du chemin de localisation dans l'en-tête ou le pied de page

[Important]

Afin que l'élément imageobject soit correctement interprété par la feuille de style, il est nécessaire d'appliquer la fonctionnalité apply-templates :

Figure 32. Exemple du paramétrage pour une image

Exemple du paramétrage pour une image

Paramétrage du xpath pour sélectionner des éléments particuliers du même type

Il est possible de récupérer plusieurs éléments du même type (plusieurs images, plusieurs tableaux, etc.) dans la feuille de style via xpath.

Voici l'exemple de la procédure de récupération des images.

  1. Placez toutes les images nécessaires dans le bloc Information > Couverture.

  2. Donnez à chaque image une valeur différente dans l'attribut role en sélectionnant l'élément imageobject.

    Figure 33. Attribut role pour imageobject

    Attribut role pour imageobject

  3. Composez le xpath pour chaque image comme suit dans l'exemple : d:info//d:imageobject[@role='image_produit'].

Tableau 1. Expressions de chemin les plus courantes

Syntaxe

Utilisation

Exemple

d:

indique que l'élément appartient à l'espace de nom DocBook.

d:info/d:date

/

utilisé pour sélectionner les enfants d'un élément. Il indique que l'on souhaite sélectionner un élément qui est directement sous l'élément parent.

d:info/d:date

Pour l'exemple donné, l'élément date est enfant de l'élément info.

//

utilisé pour effectuer une recherche des éléments en profondeur.

d:info//d:date

Pour l'exemple donné, on va chercher tous les éléments date qui se trouvent dans le bloc info peu importe leurs parents.

*

sélectionne tous les éléments.

d:info/d:legalnotice/d:*

[]

utilisés pour filtrer les éléments sélectionnés en fonction de leurs attributs ou de leurs valeurs. Ou pour représenter un index dans une liste.

d:info/d:legalnotice[2]

Pour l'exemple donné, le xpath sélectionne le deuxième élément legalnotice, enfant de l'élément info.

@

sélectionne des attributs.

d:info/d:date[@role='anniversaire']

Pour l'exemple donné, on sélectionne les éléments imageobject qui ont l'attribut role avec la valeur « anniversaire ».