首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

怎么用xsl显示这个xml树状菜单

2012-03-13 
如何用xsl显示这个xml树状菜单xml节点格式如下:nodeid 00001 /idtext XXX /textparentid/par

如何用xsl显示这个xml树状菜单
xml节点格式如下:
<node>
    <id> 00001 </id>
    <text> XXX </text>
    <parentid> </parentid>
</node>
<node>
    <id> 00002 </id>
    <text> XXX </text>
    <parentid> </parentid>
</node>
<node>
    <id> 00003 </id>
    <text> XXX </text>
    <parentid> 00001 </parentid>
</node>
<node>
    <id> 00004 </id>
    <text> XXX </text>
    <parentid> 00001 </parentid>
</node>
<node>
    <id> 00005 </id>
    <text> XXX </text>
    <parentid> 00004 </parentid>
</node>
即是在xml中每个树节点是并列放的,层次关系通过parentid来表示
现在要用xsl显示出节点的树状结构,树的层次是不确定的


[解决办法]
<xsl:template name= "getitems ">
<xsl:param name= "spstr "> </xsl:param>
<xsl:param name= "rootid "> </xsl:param>
<xsl:for-each select= "/nodes/node[parentid=$rootid] ">
<xsl:value-of select= "$spstr "/> <xsl:value-of select= "id "/> - <xsl:value-of select= "text "/> <br/>
<xsl:call-template name= "getitems ">
<xsl:with-param name= "spstr "> <xsl:value-of select= "$spstr "/> &#160;&#160; </xsl:with-param>
<xsl:with-param name= "rootid " select= "id "> </xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template match= "/ ">
<xsl:call-template name= "getitems "> </xsl:call-template>
</xsl:template>

热点排行