XSLT professional site
  首 页 经典书籍 精彩实例 热门文章 语法详解 休闲天地  
题目:

把数据库输出的表用XSLT转化为树状的. 输出表示例: <root> <item id="1" parent="0" /> <item id="2" parent="1" /> <item id="3" parent="2" /> <item id="4" parent="1" /> </root> 目标示例: <root> <item id="1"> <item id="2"> <item id="3" /> </item> <item id="4"/> </item> </root>
实现:

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:key name="parentid" match="item" use="@parent"/> <xsl:template match="/"> <root> <xsl:apply-templates select="root/item[@parent='0']"/> </root> </xsl:template> <xsl:template match="item"> <xsl:element name="{name(.)}"> <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute> <xsl:for-each select="key('parentid',@id)"> <xsl:apply-templates select="."/> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet>
下一篇>
Email: xslt.org.cn@gmail.com

© 2007     xslt.org.cn