lösen habe ich eine VorlageXSLT: Machen Sie Pfade in der Vorlage/in Bezug auf die Vorlage
<xsl:template name="template">
<xsl:param name="param"/>
</xsl:template>
, die ich
<xsl:call-template name="template">
<xsl:with-param name="param" select="."/>
</xsl:call-template>
Dies löst den Inhalt des Anrufs mit. zu einer Zeichenfolge und übergibt sie an die Vorlage.
Es löst jedoch. relativ zum Vorlagenaufruf. Wenn ich den Kontext innerhalb der Vorlage ändere, wie kann ich den Parameter in der Vorlage relativ zum neuen Kontext auflösen?
Beispiel hinzugefügt, wie pro Anfrage:
<xsl:template name="template">
<xsl:param name="param1"/>
<xsl:param name="param2"/>
<xsl:for-each select="$param1">
<xsl:value-of select="func:Lookup($param2)"/>
</xsl:for-each>
</xsl:template>
<xsl:call-template name="template">
<xsl:with-param name="param1" select="element"/>
<xsl:with-param name="param2" select="."/>
</xsl:call-template>
wo param1 und param2 bezüglich XPaths.
Ich möchte beide relative XPaths an die Vorlage übergeben und sie dann auflösen. <xsl:for-each select="$param1">
sollte zu einigen Elementen aufgelöst werden, und dann sollte .
relativ zu jedem Element aufgelöst werden. $ param2 sollte relativ zu $ param1 aufgelöst werden.
Aber was tatsächlich passiert, ist beides relativ zum Vorlagenaufruf gelöst. Das ist in Ordnung für param1, aber nicht für param2.
Wenn es nicht für die for-each wäre, könnte ich element/.
als param2 übergeben. Aber das wird nicht funktionieren wegen der für jeden.
Es sieht für mich aus, dass alles, was Sie tun wollen, viel einfacher gemacht werden kann. Vielleicht können Sie ein Beispiel hinzufügen, was Sie erreichen möchten. – Maestro13
Nur ein Beispiel hinzugefügt. –
Ich habe string ('.') Betrachtet, aber dann löst es sich überhaupt nicht, auch nicht in der Vorlage. –