2010-09-20 5 views
-1

J'ai 2 morceaux de code dans mon fichier XSL.Comment référencer une variable dans XSL d'une fonction vers une autre fonction?

1)

<xsl:call-template name="Info"> 
    <xsl:with-param name="parententry" select="a:feed/a:entry/@href" /> 
</xsl:call-template> 

2)

<xsl:template name="Info"> 
    <xsl:param name="parentEntry" /> 
     <xsl:variable name="parententryauthorname"> 
      <xsl:value-of select="a:author/a:name" /> 
     </xsl:variable> 
     <xsl:variable name="info2"> 
      <xsl:value-of select="$parentEntry" /> 
     </xsl:variable>> 
     <input name="info2" type="hidden" value="{$info2}" /> 
     <input name="parententryauthorname" type="hidden" value="{$parententryauthorname}" /> 
</xsl:template> 

Ce que je veux faire est d'attribuer une valeur à "parentEntry" au 1er morceau de code, puis le renvoyer à la 2e place . Lorsque je suis dans le modèle "Info", je veux traiter la valeur assignée dans "parententry" pour obtenir le nom de l'auteur.

À l'heure actuelle, lorsque j'ai essayé d'imprimer la valeur de $ info2 et $ parententryauthorname, ils sont tous les deux vides.

Des suggestions?

+0

1. \t dojomedojo

+0

2. \t \t \t \t \t \t \t \t \t \t \t \t> \t \t \t – dojomedojo

Répondre

0

Cette feuille de style:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:atom="http://www.w3.org/2005/Atom" 
exclude-result-prefixes="atom"> 
    <xsl:template match="/"> 
     <xsl:apply-templates select="*/atom:entry" mode="form"/> 
    </xsl:template> 
    <xsl:template match="atom:entry" mode="form"> 
     <input name="info2" type="hidden" 
       value="{atom:link[@rel='alternate']/@href}" /> 
     <input name="parententryauthorname" type="hidden" 
       value="{atom:author/atom:name}" /> 
    </xsl:template> 
</xsl:stylesheet> 

Avec flux de ce page sortie:

<input name="info2" type="hidden" value="http://stackoverflow.com/questions/3754954/how-to-refer-a-variable-within-xsl-from-one-function-to-another-function" /> 
<input name="parententryauthorname" type="hidden" value="Java Doe" /> 
<input name="info2" type="hidden" value="http://stackoverflow.com/questions/3754954/how-to-refer-a-variable-within-xsl-from-one-function-to-another-function/3755184#3755184" /> 
<input name="parententryauthorname" type="hidden" value="Alejandro" /> 

Remarque: Lors du traitement de nœuds différents moyens, les modes sont l'outil.

Modifier: Mettre à jour la sortie avec le nouveau flux. Juste pour le fun!

Questions connexes