簡體   English   中英

Param和XSLT應用模板

[英]Param and XSLT apply template

我被困住了。 我想做的就是為單元格中的屬性分配一個數字。 我通過調用模板並將參數傳遞給我調用的模板來實現。

 <xsl:call-template name="RowIdInitializer" >
    <xsl:with-param name="i">1</xsl:with-param>        
  </xsl:call-template>

然后,我使用該參數並將其作為參數傳遞給apply-template

<xsl:template name="RowIdInitializer">
<xsl:param name="i" />   
   <xsl:apply-templates select="Data" mode="table" >
    <xsl:with-param name="iThis" select="$i"/>             
  </xsl:apply-templates>

<xsl:if test="@Exsist">
  <xsl:call-template name="RowIdInitializer">
    <xsl:with-param name="i" select="$i + 1">         
    </xsl:with-param>        
  </xsl:call-template>
</xsl:if>
</xsl:template>

請注意,然后我從自身內部調用模板(遞歸),並在調用自身時將參數的增量值傳遞給模板。 試圖模仿一個for循環,其中每個數據模式都具有一個屬性Exist(稍后可能會出現問題,因為第一次調用RowIdInitializer的調用是從一個更高級別開始的,該級別可能會在Row節點中尋找Exist屬性,

<xsl:template match="Row">
   ..... some other stuff     
  <xsl:call-template name="RowIdInitializer" >
    <xsl:with-param name="i">1</xsl:with-param>        
  </xsl:call-template>
</xsl:template>

但這不是僅僅指出來的問題。 傳遞給Apply模板的參數是將其分配給屬性data-swipepage的地方。

<xsl:template select="Data" mode="table" >
 <xsl:param name="iThis" />  
<td class="dataTableCell" onblur="cellEvent(event)" data-SwipePage ="$iThis">     
 ..otherstuff...
</td>   

這就是問題所在。 該值未傳遞,並且字符串文字被分配為該值。 這樣,當我在瀏覽器的開發人員控制台中檢查HTML時,會得到一個屬性,該屬性表示為每個作為子行的數據節點創建的所有td元素的data-SwipePage ="$iThis" 我也嘗試過傳遞像這樣的第一名

<xsl:apply-templates select="Data" mode="table" >
    <xsl:with-param name="iThis" select="1"/>             
  </xsl:apply-templates>

<xsl:apply-templates select="Data" mode="table" >
    <xsl:with-param name="iThis">1 </xsl:with-pam>             
  </xsl:apply-templates>

我也嘗試對所有<xsl:with-param使用打破<xsl:with-param這樣的

 <xsl:with-param name="iThis">
      <xsl:value-of select="$i"/>
    </xsl:with-param>

並且文字字符串值仍在使用。

在沒有完全評估代碼的情況下,上面有一個明顯的boo boo,其中需要用{和}包圍變量$ iThis,例如:

<xsl:template select="Data" mode="table" >
 <xsl:param name="iThis" />  
<td class="dataTableCell" onblur="cellEvent(event)" data-SwipePage ="{$iThis}">     
 ..otherstuff...
</td>  

暫無
暫無

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

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