簡體   English   中英

在調用 XSLT 模板時將上下文中的節點作為參數傳遞

[英]Passing node in context as a parameter while calling an XSLT Template

<Data>
   <Entry>
      <ID>1</ID>
      <First_Name>A</First_Name>
      <Last_Name>B</Last_Name>
   </Entry>

   <Entry>
      <ID>2</ID>
      <First_Name>C</First_Name>
      <Last_Name>D</Last_Name>
   </Entry>

   <Entry>
      <ID>3</ID>
      <First_Name>E</First_Name>
      <Last_Name>F</Last_Name>
   </Entry>
</Data>

我有這個示例 XML,它松散地描述了我的真實輸入 XML。 我試圖將節點<Entry>傳遞給<xsl:for-each>循環內的模板。

XSLT 的以下部分描述了我當前的(錯誤的)XSL 代碼:

<xsl:template match="Data">
   <xsl:for-each select="Entry">

   <!-- Some processing goes here which requires this loop -->

      <xsl:call-template name="makeRecord">     
         <xsl:with-param name="node" select="."/>
      </xsl:call-template>

   </xsl:for-each>
</xsl:template>

<xsl:template name="makeRecord">
   <xsl:param name="node"/>
   <xsl:value-of select="$node/First_Name"/>
</xsl:template>

我面臨的問題是所有數據都被輸出,但我只希望我指定的子節點的值,即<First_Name>出現在每個<Entry>的輸出中。 我懷疑我使用模板參數作為$node/First_Name在這里有問題。 不過,我的 XSLT 中必須有 for 循環。 任何人都可以建議如何正確引用作為參數傳遞給模板的節點的子節點值嗎? 我也嘗試過 apply-template 方法,但同樣的問題仍然存在。

提前致謝!

——回答我自己的問題——

看起來我的實際代碼的錯誤不在此處提到的其他地方。 如果有人需要知道如何將節點作為參數傳遞給模板,請保持這個問題的存在。 請務必檢查問題的評論以獲得更好的解決方案!

暫無
暫無

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

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