2011-08-29 143 views
0

這裏是我處理XML:我需要適應與第二結構爲什麼這個XSL模板無效?

<xsl:template match="/"> 
    <xsl:call-template name="CustomTemplate"/> 
</xsl:template> 

<xsl:template name="CustomTemplate"> 
    <xsl:template match="Row"> 
     <xsl:value-of select="@ID"/> 
    </xsl:template> 
</xsl:template> 

<dsQueryResponse> 
<Rows> 
<Row ID="14"></Row> 
</Rows> 
</dsQueryResponse> 

這XSL工作:

<xsl:template match="Row"> 
     <xsl:value-of select="@ID"/> 
    </xsl:template> 

但沒有這一項,製作一個調用模板,有沒有人知道第二個XSL中需要改變什麼?

+1

XSL模板不能嵌套。請編輯你的文章,以顯示你想輸出給定的輸入XML。 –

回答

0

我不認爲你可以像這樣嵌套模板。您可以執行的操作如下:

<xsl:template match="/"> 
    <xsl:call-template name="CustomTemplate"/> 
</xsl:template> 

<xsl:template name="CustomTemplate" match="Row"> 
    <!-- format rows here --> 
</xsl:template> 
+0

我也試過了,它也不行! – Holden

+0

@Holden - 它不工作的原因是因爲上下文是'/',並且您試圖訪問'/ dsQueryResponse/Rows/Row'中的屬性。你可以使用''。還要注意'match =「Row」'現在沒有做任何事情。你可以完全刪除這個匹配,它仍然可以工作。 –