Comment transmettre un paramètre d'entrée à une feuille de style XSLT? J'utilise xsltproc, et je voudrais utiliser --stringparam <param> <value>
comme argument, mais je ne sais pas comment accéder au paramètre à l'intérieur du XSLT. Quelqu'un peut-il donner un exemple? Merci d'avance.Paramètre d'entrée dans xslt
Répondre
J'utilise celui-ci. La partie de valeur par défaut est facultative. Vous devez avoir un
<xsl:param name="yourParamname"/>
.
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- default value -->
<xsl:variable name="defaultDeploymentMode">
<xsl:text>test</xsl:text>
</xsl:variable>
<xsl:param name="deploymentMode" select="$defaultDeploymentMode"></xsl:param>
<xsl:template match="/">
<data><xsl:value-of select="$deploymentMode"/>
</data>
</xsl:template>
Comment donner paramètre d'entrée à un fichier xslt?
Dans XSLT un paramètre global (xsl:param
qui est un enfant de l'élément supérieur de la feuille de style XSLT) peut avoir sa valeur spécifiée en externe, par l'initiateur de la transformation.
La façon dont ce paramètre des paramètres externes est effectué dépend de l'implémentation et diffère d'un processeur XSLT à un autre - lisez la documentation du processeur XSLT spécifique que vous utilisez.
Voici un petit exemple:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="pDeletePos" select="3"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="num">
<xsl:if test="not(position() = $pDeletePos)">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Ici, le paramètre global nommé pDeletePos
la position de l'élément num
qui doit être supprimé. Il existe également un default value
(3), spécifié pour ce paramètre. Cette valeur sera utilisée si l'initiateur de la transformation ne spécifie pas le paramètre pDeletePos
.
Lorsque la transformation ci-dessus est appliquée sur ce document XML:
<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>05</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>
et si la valeur de l'pDeletePos
est externe spécifié comme 5
, puis la transformation produit le résultat suivant:
<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>
Pour définir le paramètre de manière externe, voici comment cela se fait en C#, lors de l'initialisation du processeur XSLT XslCompiledTransform:
http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addparam.aspx
Bonne réponse. Cela m'a aidé avec mon problème de comment spécifier un paramètre en externe à un fichier XSLT. – Anuj
- 1. XSLT Le paramètre ne fonctionne pas
- 2. Collection Xslt en tant que paramètre
- 3. XSLT: Définir un paramètre avec & ampersand
- 4. appel modèle xslt avec le paramètre
- 5. Pass paramètre de xquery à xslt
- 6. Test xslt sur un paramètre d'une variable
- 7. Passage de XMLDocument en paramètre à XSLT
- 8. XSLT somme des nœuds par paramètre
- 9. Détecter le type de paramètre xslt
- 10. Transférer le paramètre dans la feuille de style XSLT
- 11. comment passer un paramètre et l'utiliser dans mon xslt
- 12. Impossible d'exécuter xxforms: get-demande-paramètre dans XPL - processeur XSLT
- 13. Comment sélectionner un élément dans un paramètre de modèle XSLT?
- 14. Utilisation d'un paramètre transmis dans la feuille de style xslt
- 15. Expression régulière dans XSLT
- 16. XSLT: Si la valeur du paramètre de contrôle
- 17. Exécuter de transformation XSLT de Java avec le paramètre
- 18. Paramètre de fonction XSLT de xsl: value-of select
- 19. XSLT ne pas avoir le paramètre passé de javascript
- 20. Passant Xml Snippet en xslt en tant que paramètre
- 21. Comment transmettre un attribut xml au paramètre xslt?
- 22. XSLT Comment utiliser "ligne" char ('-') en tant que paramètre
- 23. NANT: paramètre de tâche de style passant à xslt
- 24. XSLT - activer la fonction XPath dans XSLT
- 25. XSLT: Modèle d'appel avec paramètre du modèle qui fournit le paramètre
- 26. Itérer via un paramètre de chaîne XSLT et faire quelque chose pour chaque paramètre
- 27. Comment tester si un paramètre a été passé dans un modèle dans XSLT v 2.0?
- 28. Passer la chaîne en tant que paramètre dans XSLT dans PHP
- 29. Ajouter une condition dans xslt
- 30. prédicats emboîtées dans xslt
Vous pouvez également spécifier la valeur par défaut directement dans la sélection: ' ' –