Ne XSLT le concept d'un tableau?
Je n'ai jamais vraiment utilisé XSLT avant et suis à la recherche de quelques conseils.
J'ai les éléments suivants retourné XML à partir d'GSA boîte:
<MT N="searchCategories" V="Category 1"/>
<MT N="searchCategories" V="Category 2"/>
etc etc
Il peut être n'importe quelle quantité de ces catégories.
Je me demandais simplement si XSLT a n'importe quel concept d'un tableau?
Si oui:
- Comment pourrais-je énumérer tous les nœuds au-dessus dans un tableau?
- Comment puis-je obtenir la longueur de la matrice?
Si ce n':
- Est là tout le travail autour de disponibles?
Je crois que je suis en utilisant XSLT version 1.0
- XSLT n'a pas de tableau. Quels sont vos besoins?
- J'ai besoin d'énumérer les valeurs, et en fonction de certaines conditions, de construire un fil d'ariane d'eux.
Vous devez vous connecter pour publier un commentaire.
Comme expliqué par @Michael Kay, il n'existe pas de matrice de structure de données pris en charge par le modèle de données XPath (XDM) à la fois pour XPath 1.0 et XPath 2.0.
Cependant, il est possible d'utiliser un tableau comme la syntaxe ressemble à ceci:
Dans XPath 1.0/2.0, on peut définir une variable pour contenir un ensemble de nœuds et ceux-ci peuvent être accessibles par leur position (dans l'ordre du document), la spécification de cette position dans un prédicat.
Voici un exemple:
définit une variable nommée
vTransfers
avec la valeur du nœud-ensemble de tous lestransfer
éléments dont chacun est un enfant de l'élément supérieur du document XML.Puis:
sélectionne le premier élément qui est contenue dans
$vTransfers
.sélectionne le deuxième élément qui est contenue dans
$vTransfers
, ...sélectionne le nœud de
$vTransfers
dont la position, dans l'ordre du document, est égale à la valeur contenue dans la variable$k
.En plus de XPath 2.0 prend en charge le concept de séquences. Une séquence est comme une liste d'éléments. Un élément peut être de tout type, non seulement nœud. Les éléments dans une séquence ordonnée dans la façon dont ils apparaissent (sont définis) dans la séquence. Si deux éléments dans une séquence de nœuds, leur ordre est toujours que défini dans la séquence, et ce peut être différent de leur ordre du document.
Exemple:
puis lorsqu'il est référencé comme ceci:
produit:
Rappelez-vous: Bien que ces synthactic constructions ressemblent à la sélection d'un élément dans un tableau, node-set et les séquences sont pas tableaux. En particulier, ils ne disposent généralement pas de l'accès très rapide O(1) qu'une matrice a de ses éléments. Dans le cas de node-set et les séquences de l'efficacité de l'accès à un élément à une position aléatoire est généralement O(N). Cela signifie qu'un algorithme est O(N) lorsque l'utilisation d'un tableau, peut-être O(N^2) lors de l'utilisation de la matrice-comme les notations avec nœud-ensembles ou des séquences.
XSLT 2.0 prend en charge les séquences, qui sont similaires à bien des égards à des tableaux. Les séquences peuvent contenir des nœuds ou des valeurs atomiques (des exemples de valeurs atomiques sont des chaînes de caractères, des nombres, des dates, etc). Les structures de données en XSLT 1.0 sont beaucoup plus limitées; vous êtes essentiellement limitée à la modélisation des choses comme des arbres XML.
Cependant, vous vous posez la mauvaise question. Compte tenu de l'expérience limitée avec la langue, il serait mieux pour décrire la sortie que vous voulez que votre programme à produire pour une entrée donnée, et demander des conseils sur la façon de faire de la transformation.