1
我們輸入文檔,描述樹的結構XSLT遞歸:的樹生成
<?xml version="1.0"?>
<html>
<mas>
<row> <col>2</col><col>4</col> </row>
<row> <col>3</col> </row>
<row> <col></col> </row>
<row> <col>5</col><col>6</col> </row>
<row> <col></col> </row>
<row> <col></col> </row>
</mas>
</html>
我們要創建一個樹。 我們要輸出的文件是這樣的:
<Transform id="b_1">
<Transform id="b_2">
<Transform id="b_3"/>
</Transform>
<Transform id="b_4">
<Transform id="b_5"/>
<Transform id="b_6"/>
</Transform>
</Transform>
我有XSLT樣式表:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:template name="vetka">
<xsl:param name="row"/>
<xsl:for-each select="html/mas/*[$row]/*" >
<xsl:variable name="col" select="position()"/>
<xsl:variable name="num" select="//html/mas/*[$row]/*[$col]"/>
<Transform>
<xsl:attribute name="id"><xsl:value-of select="concat('b_',$num)"/></xsl:attribute>
<xsl:call-template name="vetka">
<xsl:with-param name="row" select="$num"/>
</xsl:call-template>
</Transform>
</xsl:for-each>
</xsl:template>
<xsl:template match="/">
<xsl:result-document href="str.txt">
<xsl:call-template name="vetka">
<xsl:with-param name="row" select='1'/>
</xsl:call-template>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
但我們得到兩個( 「B_2」, 「B_4」)。我認爲,遞歸不是開始。爲什麼?
這與您的其他問題有什麼不同:http://stackoverflow.com/questions/40232243/how-do-i-use-xslt-to-add-a-new-element-in-output-document? –
這是關於遞歸。這不是開始( – goshanoob