XPath

Concept


XPath est une norme W3C conçue spécialement pour naviguer et rechercher des nœuds dans des documents XML ; c’est la base essentielle de XSLT. Toutes les expressions dans select="" et test="" au sein de XSLT utilisent XPath.

  • Situer les nœuds au moyen d’expressions de chemin
  • Plus de 100 fonctions standard intégrées : manipulation de chaînes, calculs numériques, comparaisons de dates, traitement des nœuds, opérations logiques, etc.

7 types de nœuds

Nœud document (nœud racine), nœud élément, nœud attribut, nœud texte, nœud commentaire, nœud instruction de traitement, nœud espace de noms.

Exemple : <title lang="eng">Harry Potter</title>

  • <title> → Nœud élément
  • lang="eng" → Nœud attribut
  • Harry Potter → Nœud texte

Concept

  1. Valeur atomique : contenu de nœud sans enfant ni parent, par exemple eng, 29.99
  2. Élément(Item) : Élément = nœud ou valeur atomique

Relations entre les nœuds XML

Prenons l’exemple <bookstore><book><title></title></book></bookstore>

  1. Parent : chaque élément et attribut n’a qu’un seul parent ; book est le parent de title
  2. Enfants : un élément peut posséder plusieurs nœuds enfants ; title et price sont les enfants de book
  3. Frères et sœurs(Sibling) : ils partagent le même nœud parent ; title et price au même niveau sont frères et sœurs l’un de l’autre
  4. Ancêtre(Ancestor) : le parent, le parent du parent et tous les nœuds supérieurs ; les ancêtres de title sont book et bookstore

Expressions de chemin

Sélectionner des nœuds XML à l’aide de chemins et d’étapes

<bookstore>
  <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
  </book>
</bookstore>Langage du code : HTML, XML (xml)
ExpressionSignification
bookstoreSélectionner l’élément bookstore sous la racine
/bookstoreChemin absolu, correspond à partir du nœud racine
bookstore/bookSélectionner tous les éléments enfants book sous bookstore
//bookÉléments book à n’importe quel endroit du document (recherche globale)
//@langSélectionner tous les nœuds attribut nommés lang

Fonction XPath:position()

<xsl:value-of select="position()" />Langage du code : HTML, XML (xml)

position() est une fonction intégrée XPath qui renvoie le numéro de séquence du nœud en cours dans l’ensemble de nœuds, le comptage commence à 1.

Exemple : afficher les numéros de séquence

<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head></head>
<body>
<ul>
    <!--Parcourir tous les étudiants class/student -->
    <xsl:for-each select="class/student">
        <xsl:sort select="age"/>  <!--Tri croissant par âge-->
        <!--Filtrer les étudiants dont la taille >160-->
        <xsl:if test="height &gt; 160">
            <li>
                <xsl:value-of select="position()" /><!--Afficher le numéro de séquence-->
                <xsl:value-of select="name"/><!--Traitement à conditions multiples-->
                <xsl:choose>
                    <xsl:when test="height &gt; 200">
                        <b><xsl:value-of select="age"/></b>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select="age"/>
                    </xsl:otherwise>
                </xsl:choose>
            </li>
        </xsl:if>
    </xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>Langage du code : HTML, XML (xml)

XPath

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *