2016-08-29 2 views
0

Я призываю применять-шаблоны следующим образом:Как получить значение атрибута в параметре шаблона XSLT?

<xsl:apply-templates> 
    <xsl:with-param name="pWeight" select="@layoutWeight * $pContentWidth" /> 
</xsl:apply-templates> 

Я пытаюсь получить доступ к значению атрибута layoutWeight дочернего элемент, к которому применяется-шаблоны действуют на. Однако вычисление всегда оценивается как пустое, хотя дочерние элементы имеют числовое значение для layoutWeight, а pContentWidth также является числовым значением.

Как получить доступ к атрибуту layoutWeight дочернего элемента apply-templates?

ответ

1

Атрибут select по with-param оценивается относительно окружающего контекста, а не по отношению к каждому узлу, на котором применяются шаблоны. Один из способов сделать то, что вы пытаетесь сделать, это обернуть apply-templates в for-each:

<xsl:for-each select="node()"> 
    <xsl:apply-templates select="."> 
    <xsl:with-param name="pWeight" select="@layoutWeight * $pContentWidth" /> 
    </xsl:apply-templates> 
</xsl:for-each> 

Другим вариантом было бы просто передать параметр $pContentWidth в apply-templates и есть шаблон (ы) сами получить доступ к @layoutWidth и выполнить вычисление.

 Смежные вопросы

  • Нет связанных вопросов^_^