2009-07-07 7 views
1

J'ai une variable dans mon xsl qui peut être déclarée ou non. Comment puis-je savoir si cela a été déclaré?xsl: comment dire si une variable a été déclarée

Le problème est que j'ai 2 feuilles de style. Un parent (où la variable globale est déclarée) et un enfant (où la variable globale est référencée). J'appelle généralement la feuille de style parent qui appelle ensuite la feuille de style enfant. Donc tout va bien parce que la variable est déclarée. Mais j'appelle parfois la feuille de style enfant par elle-même. Par conséquent, la solution la plus simple pour moi est de vérifier si la variable a été déclarée avant d'essayer de l'utiliser.

Toute aide est grandement appréciée.

Répondre

1

Dans xsl vous ne pouvez pas dire si une variable est déclarée.

La solution que j'ai trouvée, était d'avoir un fichier xsl intérimaire qui a déclaré la variable, puis importé le fichier xsl "enfant".

1

Ceci n'est pas nécessaire.

XSLT est un langage déclaratif. Vous ne pouvez pas utiliser une feuille de style contenant des références non déclarées, car il s'agit d'une erreur de compilation et non d'une erreur d'exécution.

Cela signifie que si la feuille de style est compilée, elle ne rencontrera jamais une erreur "variable non déclarée" par définition.

Qu'essayez-vous de faire?

+0

Voir mes modifications. (J'ai plusieurs feuilles de style.) Merci pour l'entrée si! – joe

0

En supposant que votre feuille de style fasse référence à une deuxième feuille dont vous n'êtes pas certain du contenu, essayez xsl: import (par opposition à xsl: include).

+0

La feuille de style enfant n'importera ou n'inclura jamais le parent. J'ai juste besoin de dire à l'exécution si la variable a été initialisée. – joe

+0

Quel mécanisme utilisez-vous pour établir la relation si elle n'est pas importée ou incluse? Si vous importez, vous pouvez déclarer la variable de sorte que la priorité d'importation définisse une valeur pour la variable ou définisse une chaîne vide. Vous pouvez ensuite tester si $ foo! = ''. – steamer25

+0

Le parent importe l'enfant, mais ce n'est pas vraiment pertinent. Parce que le problème est que parfois j'ai ANT appelant seulement la feuille de style enfant, pas le parent. La variable n'est jamais déclarée dans l'enfant, ce qui provoque une erreur. Je dois être en mesure de vérifier si la variable est déclarée, et effectuer une action. – joe

Questions connexes