簡體   English   中英

如何在XSLT模板參數中獲取屬性值?

[英]How to get an attributes value within a XSLT template parameter?

我正在調用apply-templates,如下所示:

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

我正在嘗試訪問apply-templates作用於其上的子元素的layoutWeight屬性值。 但是,即使子項具有layoutWeight的數值,並且pContentWidth也是數值,該計算也總是評估為空。

如何訪問子元素apply-template正在作用的layoutWeight屬性?

with-param上的select屬性是相對於周圍上下文而不是相對於要在其上應用模板的每個節點評估的。 完成您要嘗試執行的操作的一種方法是將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並執行計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM