XSL是基於在模板上。
XML數據可以在三級「重用」。在最基本的層面上,你可以通過XML來使用<xsl:for-each />
。
注意:對於XSL中的每個不循環數據,它只是匹配數據。此外,當您的「內部」一個換每個內,所述XML的「上下文」(類似的編程「範圍」的概念)
使用和重新使用的for-each
的一個例子
<xsl:for-each select="/xml/data/here">
... do some stuff ...
</xsl:for-each>
<xsl:for-each select="/xml/data/here">
... do some DIFFERENT stuff ...
</xsl:for-each>
for-each節點包含在模板節點(第二級重用)中。有兩種類型的模板節點:匹配和命名。 匹配模板節點的行爲與前面提到的每個節點相似,但是如果在XSL處理開始時匹配任何節點,則會自動由模板引擎調用。匹配模板節點也可以明確應用。另一方面命名模板節點總是顯式應用,可以被認爲是相同的功能。一個匹配模板,這將始終被調用(因爲根節點將一直存在)的
例
<xsl:template match="/">
... do some stuff ...
</xsl:template>
A匹配模板調用另一個匹配模板明確
<xsl:template match="/">
<xsl:apply-templates select="xml/data/too" />
</xsl:template>
<xsl:template match="xml/data/too">
... do something ...
</xsl:template>
注意:在爲了匹配模板的工作,匹配的XML節點需要存在。如果它不存在匹配,那麼調用的模板是而不是。
命名模板
<xsl:template name="WriteOut">
... data with NO Context Here ...
</xsl:template>
或從匹配的模板調用一個命名模板
<xsl:template match="/">
<xsl:call-template name="WriteOut" />
<xsl:template>
示例注意:您可以混合和匹配,你打來的,你只要匹配,並命名模板必須注意你在什麼背景下。
所有的模板節點保存在XSL樣式表,你c一個包括和導入各種樣式表。例如,您可以將處理HTML頭節點的所有模板放在一個模板中,並將所有模板處理另一個模板中的HTML正文節點。然後,您可以創建一個包含標題和正文樣式表的樣式表。
的實施例包括節點
<xsl:include href="header.xsl" />
總之,有三種方法來提取數據塊,通過對於-eaching,通過模板或通過包括的樣式表。
「meme」?我不認爲這意味着你認爲它的意思... – annakata 2008-12-19 21:30:59