Как передать переменную в XSL из одной функции в другую функцию? - PullRequest
0 голосов
/ 20 сентября 2010

У меня есть 2 фрагмента кода в моем XSL-файле.

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>

Что я хочу сделать, это назначитьзначение для "parententry" в 1-м куске кода, а затем сослаться на 2-е место.Когда я нахожусь в шаблоне «Информация», я хочу дополнительно обработать значение, назначенное в «parententry», чтобы получить имя автора.

Прямо сейчас, когда я пытался напечатать значения $ info2 и $parententryauthorname, они оба пусты.

Есть предложения?

1 Ответ

0 голосов
/ 21 сентября 2010

Эта таблица стилей:

<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>

С фидом этой страницы выведите:

<input name="info2" type="hidden" value="/3280718/kak-peredat-peremennuy-v-xsl-iz-odnoi-funktsii-v-druguy-funktsiy" />
<input name="parententryauthorname" type="hidden" value="Java Doe" />
<input name="info2" type="hidden" value="/3280718/kak-peredat-peremennuy-v-xsl-iz-odnoi-funktsii-v-druguy-funktsiy/3755184#3755184" />
<input name="parententryauthorname" type="hidden" value="Alejandro" />

Примечание : при обработке узлов разными способами режимы являются правильнымиtool.

Редактировать : обновить вывод с новой подачей.Просто для удовольствия!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...