Nous avons en entrée un fichier XML comme suit:XSLT: sélectionnez un nœud qui commence par une liste prédéfinie d'éléments
<R>
<MT N="folder" V="Folder1\Subfolder1" />
<MT N="folder" V="Folder2xx\Subfolder1" />
<MT N="folder" V="Folder3yyyy\Subfolder1" />
<MT N="folder" V="Folder4zzzz\Subfolder1" />
</R>
Dans notre XSLT qui effectue l'affichage, l'entrée:
<xsl:value-of select="MT[@N='folder']/@V"/>
affiche:
Folder1\Subfolder1 Folder2xx\Subfolder1 Folder3yyyy\Subfolder1 Folder4zzzz\Subfolder1
Ce que nous devons réaliser est de sélectionner l'entrée unique qui commence par une liste configurable prédéfinie de str par exemple, par exemple si notre liste définie avant est
Folder2xx, Folder18ppp, Folder212aaa
Je voudrais afficher en sortie uniquement
Folder2xx\Subfolder1
La chose optimale serait même:
Folder2xx\Subfolder1 (linked 3 times)
mais j'apprécierais vraiment aider sur la sélection de l'élément unique. C'est malheureusement trop complexe pour mes connaissances sur XSLT, quelqu'un peut-il m'aider? Notre système prend en charge XSLT 2.0 et XPATH 2.0
merci beaucoup!
Mario
Bonne question, +1. Voyez ma réponse pour une solution courte XPath 2.0 à 1 couche. :) –
Quelle est la logique derrière le '(lié 3 fois)'? –
@Alejandro: en fait, la liste des éléments "dossier" est une liste d'emplacements réels et de liens vers eux, ainsi le (lié 3 fois) est le nombre d'éléments qui correspondent aux modèles des emplacements réels. Désolé, ce n'était pas clair, mais c'était vraiment une chose très difficile à faire, je ne m'attendais pas à avoir une solution aussi claire (et rapide!) ... – Mario