XSL xsl: correspondance de modèle = “/”

J’apprends juste XML et comment utiliser les fichiers XSL. Dans un fichier XSL, j’ai trouvé le terme suivant:

xsl:template match="/" 

Qu’est-ce que cela signifie? Et que pourrais-je utiliser à la place du / ? Puis-je écrire une table ou une autre balise HTML au lieu de / ?

La valeur de l’atsortingbut de match de l’instruction doit être un motif de correspondance .

Les motifs de correspondance forment un sous-ensemble de l’ensemble de toutes les expressions XPath possibles . La première limitation, naturelle, est qu’un modèle de correspondance doit sélectionner un ensemble de nœuds. Il y a aussi d’autres limitations. En particulier, les axes inverses ne sont pas autorisés dans les étapes de localisation (mais peuvent être spécifiés dans les prédicats). De plus, aucune référence de variable ou de paramètre n’est autorisée dans XSLT 1.0, mais leur utilisation est légale dans XSLT 2.x.

/ in XPath désigne le noeud racine ou document. Dans XPath 2.0 (et donc XSLT 2.x), cela peut aussi être écrit comme document-node() .

Un motif de correspondance peut contenir l’ abréviation // .

Exemples de modèles de correspondance:

  

peut être appliqué à n’importe quel élément nommé table .

  

peut être appliqué à tout élément nommé y dont le parent est un élément nommé x .

  

peut être appliqué à n’importe quel élément.

  

peut être appliqué uniquement à l’élément supérieur d’un document XML.

  

peut être appliqué à n’importe quel atsortingbut.

  

peut être appliqué à n’importe quel nœud de texte.

  

peut être appliqué à n’importe quel nœud de commentaire.

  

peut être appliqué à n’importe quel noeud d’instruction de traitement.

  

peut être appliqué à n’importe quel nœud: élément, texte, commentaire ou instruction de traitement.

Il est intéressant de noter que, comme il est déroutant pour les débutants en XML, la racine (ou le nœud de document) d’un document XML n’est pas l’élément de premier niveau. C’est le parent de l’élément de niveau supérieur. Cela est déroutant car il ne semble pas que l’élément de premier niveau puisse avoir un parent. N’est-ce pas le meilleur niveau?

Mais regardez ceci, un document XML bien formé:

    

La racine de ce document a trois enfants: une instruction de traitement, un commentaire et un élément.

Ainsi, par exemple, si vous souhaitez écrire une transformation débarrassée de ce commentaire, mais laissée dans des commentaires apparaissant ailleurs dans le document, vous l’appendez à la transformation d’identité:

  

Encore plus simple (et plus communément utile), voici un modèle XPath qui correspond à l’élément de niveau supérieur du document, quel que soit son nom: /* .

L’atsortingbut de correspondance indique sur quelles parties la transformation de modèle va être appliquée. Dans ce cas particulier, le “/” signifie la racine du document XML. La valeur que vous devez fournir dans l’atsortingbut de correspondance doit être une expression XPath. XPath est le langage que vous devez utiliser pour référencer des parties spécifiques du fichier XML cible.

Pour bien comprendre ce que vous pouvez append à l’atsortingbut match, vous devez comprendre ce qu’est xpath et comment l’utiliser. Je vous suggère de regarder les liens que j’ai fournis pour vous au bas de la réponse.

Puis-je écrire “table” ou toute autre balise HTML au lieu de “/”?

Oui, vous pouvez. Mais cela dépend exactement de ce que vous essayez de faire. Si votre fichier XML cible contient des éléments HMTL et que vous êtes sortingyng pour appliquer ce modèle xsl:, il est logique d’utiliser table, div ou anithing else.

Voici quelques liens:

  • Modèles XSL
  • XPath
  • Un bon livre sur XML – Début XML