J'ai une application écrite en C# qui doit appliquer un nom de modèle à un fichier xml défini dans un fichier XSLT.XSLT choisir le modèle
Exemple XML:
<Data>
<Person>
<Name>bob</Name>
<Age>43</Age>
</Person>
<Thing>
<Color>Red</Color>
</Thing>
</Data>
Exemple XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="TargetName" />
<xsl:param name="RootPath" />
<xsl:Template Name="AgeGrabber">
<xsl:value-of select="/Person/Age" />
</xsl:Template>
<xsl:Template Name="ColorGrabber">
<xsl:value-of select="/Color" />
</xsl:Template>
</xsl:stylesheet>
Dire que je voulais exécuter le modèle "ColorGrabber" avec le chemin "/ Data/Thing" puis exécuter une autre transformée avec le modèle "AgeGrabber" avec le chemin "/ Data". Est-ce possible? Je pensais que je pourrais passer dans le chemin et le nom du modèle (hense les 2 params en haut) et ensuite faire un certain type de commutateur mais il ressemble à xsl: call-template ne peut pas prendre un paramètre comme attribut name.
Comment puis-je obtenir ce comportement?
Quel est exactement le résultat attendu de la transformation? – mzjn