数据文件:
xmltree.xml
XSLT实现XML无极限树(精简版)[一]代码少,传输好!<?xml version="1.0" encoding="GB2312" ?>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
<Troot>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="1" pid="0" c="1">大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="2" pid="0" c="3">中学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="3" pid="0" c="3">小学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="4" pid="2" c="2">高中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="5" pid="2" c="5">初中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="6" pid="15" c="3">清华大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="7" pid="15" c="4">北京大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="8" pid="5" c="3">天津铁三中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="9" pid="4" c="3">天津市二中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="10" pid="16" c="2">天津音乐学院</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="11" pid="15" c="5">天津商学院</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="12" pid="4" c="3">耀华中学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="13" pid="3" c="6">昆纬路小学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="14" pid="2" c="6">七中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="15" pid="1" c="1">综合类院校</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="16" pid="1" c="1">艺术类院校</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="17" pid="15" c="4">医科大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="18" pid="15" c="4">天津师范大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="19" pid="15" c="23">天津大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="20" pid="15" c="7">南开大学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="21" pid="4" c="23">天津铁一中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="22" pid="5" c="5">天津铁一中</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="23" pid="3" c="3">天津市铁路职工子弟第三小学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="24" pid="3" c="3">天津市铁路职工子弟第一小学</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="25" pid="16" c="3">美术学院</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="26" pid="16" c="3">体育学院</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<Item id="0" pid="-1" c="2">学校</Item>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
</Troot>



XSLT: style.xsl
XSLT实现XML无极限树(精简版)[一]代码少,传输好!<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<!-- 这个名称空间可以使用output,但是IE5不可解析 -->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<!-- 推荐使用环境,MSIE6,MSXML4.0 -->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<xsl:output method="html" version="4.0" encoding="GB2312" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<xsl:template match="/">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!        
<html>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
<head>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
<title>XMLTREE</title>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
<style>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<xsl:comment>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
<![CDATA[
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                h1
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                {
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    display:list-item;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    padding:2px;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    list-style:none;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                }
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                span.clsP
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                {
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    list-style-type:square;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    color:#222;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                }
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                span.clsC
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                {
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    list-style-type:disc;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    color: #00b;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                }
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                span
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                {
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    padding: 2px;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    font: 9pt;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    cursor: default;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    text-decoration:none;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    margin: 0px;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    margin-left: 16px;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                }
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                div
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                {
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    margin-left: 18px;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    border-left: 1px solid #ddd;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    border-bottom:1px solid;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    border-bottom-color:expression(document.bgColor);
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    display:block;
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                }                
]]>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
</xsl:comment>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
</style>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
</head>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
<body onselectstart="return false;">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
<xsl:call-template name="NextPID">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<xsl:with-param name="mPID">-1</xsl:with-param>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<xsl:with-param name="mNum">0</xsl:with-param>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
</xsl:call-template>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
</body>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!        
</html>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
</xsl:template>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
<xsl:template name="NextPID">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!        
<xsl:param name="mPID" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!        
<xsl:param name="mNum" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!        
<xsl:for-each select="//Troot/Item[@pid = $mPID]">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
<xsl:sort select="count(//Troot/Item[@pid = current()/@id])" order="descending" data-type="number" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
<!-- 首先按拥有孩子的数量来排序 -->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
<xsl:sort select="@id" order="ascending" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
<xsl:choose>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
<xsl:when test="count(//Troot/Item[@pid = current()/@id]) &gt; 0">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<!-- 有孩子的节点 -->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<h1>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
<span class="clsP">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
<xsl:attribute name="snode">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                                
<xsl:value-of select="@id" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
</xsl:attribute>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
<xsl:value-of select="." />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            [下属节点数:
<xsl:value-of select="format-number(count(//Troot/Item[@pid = current()/@id]),'00')" />]
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
</span>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
</h1>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<div>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
<xsl:attribute name="id">node<xsl:value-of select="@id" /></xsl:attribute>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
<xsl:call-template name="NextPID">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
<xsl:with-param name="mPID">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                                
<xsl:value-of select="@id" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
</xsl:with-param>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
<xsl:with-param name="mNum">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                                
<xsl:value-of select="$mNum + @c" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
</xsl:with-param>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
</xsl:call-template>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
</div>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
</xsl:when>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
<xsl:otherwise>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<!-- 孤单的节点 -->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
<h1>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
<span class="clsC">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
<xsl:attribute name="snode">
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                                
<xsl:value-of select="@id" />
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
</xsl:attribute>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                            
<xsl:value-of select="." />[包含内容:<xsl:value-of select="@c" />]
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                        
</span>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                    
</h1>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!                
</xsl:otherwise>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!            
</xsl:choose>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!        
</xsl:for-each>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    
</xsl:template>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
</xsl:stylesheet>
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
<!-- 最终版权归 DSclub(任兀)拥有,您可以在未授权的情况下使用,但请保留此信息 -->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
<!--
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    EMail:dsclub@hotmail.com
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    QQ:9967030
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    Nick Name: DSclub(兀儿-干部)
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    姓名:任兀
XSLT实现XML无极限树(精简版)[一]代码少,传输好!    性别:男生(未婚哦)
XSLT实现XML无极限树(精简版)[一]代码少,传输好!
-->
XSLT实现XML无极限树(精简版)[一]代码少,传输好!


对于单表的数据库,可以用ASP在Server上解析中间XML层,再用XSLT!
使用是可以自己根据喜好添加htc文件,和CSS!

这是一个很基础的版本,后期我还会不断升级它的功能!

相关文章: