Sharepoint XSLT filtrage Dynamique
Je suis en train de créer une ligne dynamique de filtre basé sur une variable. J'ai le code suivant:
<xsl:variable name="filter" select="contain(@Title, 'title1') or contain(@Title, 'title2')"/>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[string($filter)]" />
Ce qui malheureusement ne semble pas fonctionner et je me retrouve avec toutes les lignes. Je suppose que le filtre n'est pas appliqué, car je peux copier et coller la sortie du filtre $variable, la copier et la coller dans la Ligne[] et qu'il fonctionne comme prévu.
Quelqu'un a essayé de le faire avant?
Dans le cas où vous vous poseriez la question, le filtre variable est en fait créés à l'aide d'un modèle qui divise une chaîne de caractères comme:
title1 - titre2 - titre3
et retourne une chaîne de caractères comme:
contenir(@Titre, "title1") ou contenir(@Titre, 'titre2') ou(@Titre, "titre3')
Toute aide serait grandement appréciée!
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas faire ce que vous semblez être de tenter ici. Une expression XPath est atomical, vous ne pouvez pas enregistrer ses parties, et de ré-utiliser (à part que c'est
contains()
, pascontain()
).Vous besoin de quelque chose comme ceci:
Votre "filtre" ne fonctionne pas car si
$filter
est une chaîne de caractères, alors c'est une chaîne, rien d'autre. Il n'a pas de sens magique simplement parce qu'il semble XPath. 😉Ce
évalue à une chaîne non vide, le prédicat. Et de toute chaîne non vide évalue à true, ce qui rend l'expression de retour à chaque nœud, il est.
Si vous voulez un filtre dynamique basé sur une chaîne d'entrée, puis le faire:
De l'utilisation des séparateurs empêche également les "title11" d'apparaître si vous recherchez "title1".
Assurez-vous que votre filtre commence et se termine par un délimiteur, et l'utilisation d'un séparateur qui est raisonnablement peu susceptible de se produire comme une partie naturelle de
@Title
. (Par exemple, vous pouvez utiliser
. Si votre titre ne peut pas être multi-lignes c'est assez sûr.)
est ASCII CR? Just sayin'. 😉 Je ne vois vraiment pas comment cela pourrait crash de l'ensemble de la chose. J'ai l'habitude de modifier mes fichiers XSLT dans un éditeur de texte, je n'ai aucune expérience avec SP Designer. La chaîne délimitée approche est la façon la plus simple de créer une véritable dynamique de filtre. Il est plus ou moins ce que vous souhaitez, que dans une transformation XSLT/XPath conforme.