首页>>程序代码>>XML结合XSL显示动态排序的例子
XML结合XSL显示动态排序的例子
来源: 易习特达网 时间: 2014-09-13 13:56:01

sort.xml:

    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet type="text/xsl" href="paixu.xsl" ?>
    <BlueIdea>
        <team>
            <blue_ID>1</blue_ID>
            <blue_name>Sailflying</blue_name>
            <blue_text>一个简单的排序</blue_text>
            <blue_time>2002-1-11 17:35:33</blue_time>
            <blue_class>XML专题</blue_class>
        </team>
        <team>
            <blue_ID>2</blue_ID>
            <blue_name>flyingbird</blue_name>
            <blue_text>嫁给你,是要你疼的</blue_text>
            <blue_time>2001-09-06 12:45:51</blue_time>
            <blue_class>灌水精华</blue_class>
        </team>
        <team>
            <blue_ID>3</blue_ID>
            <blue_name>苛子</blue_name>
            <blue_text>正则表达式在UBB论坛中的应用</blue_text>
            <blue_time>2001-11-23 21:02:16</blue_time>
            <blue_class>Web 编程精华</blue_class>
        </team>
        <team>
            <blue_ID>4</blue_ID>
            <blue_name>太乙郎</blue_name>
            <blue_text>年末经典分舵聚会完全手册 v0.1</blue_text>
            <blue_time>2000-12-08 10:22:48</blue_time>
            <blue_class>论坛灌水区</blue_class>
        </team>
        <team>
            <blue_ID>5</blue_ID>
            <blue_name>mmkk</blue_name>
            <blue_text>Asp错误信息总汇</blue_text>
            <blue_time>2001-10-13 16:39:05</blue_time>
            <blue_class>javascript脚本</blue_class>
        </team>
    </BlueIdea>

sort.xsl:

   <?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
        <html>
            <head>
                <title>XML卷之实战:动态排序</title>
                <style>body,BlueIdea,team,blue_ID,blue_name,blue_text,blue_time,blue_class{ font: 12px "宋体", "Arial", "Times New Roman"; }
table { font-size: 12px; border: 0px double; border-color: #99CC99 #99CC99 #CCCCCC #CCCCCC; cellpadding:3;cellspacing:3; bgcolor:#eeeeee; text-decoration: blink}
span { font-size: 12px; color: red; }</style>
                <script>function taxis(x)
{
stylesheet=document.XSLDocument;
source=document.XMLDocument;
sortField=document.XSLDocument.selectSingleNode("//@order-by");
sortField.value=x;
Layer1.innerHTML=source.documentElement.transformNode(stylesheet);
}</script>
            </head>
            <body>
                <p align="center">
                    <span>XML卷之实战锦囊(1):动态排序</span>
                </p>
                <div id="Layer1" name="Layer1">
                    <xsl:apply-templates select="BlueIdea"/>
                </div>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="BlueIdea">
        <table width="500" border="1" align="center" cellpadding="1" cellspacing="1" bordercolordark="#ffffff" bordercolorlight="#ADAAAD">
            <tr bgcolor="#FFCC99" align="center">
                <td style="cursor:s-resize" onClick="taxis('blue_ID')">编号</td>
                <td style="cursor:s-resize" onClick="taxis('blue_name')">姓名</td>
                <td style="cursor:s-resize" onClick="taxis('blue_text')">主题</td>
                <td style="cursor:s-resize" onClick="taxis('blue_time')">发表时间</td>
                <td style="cursor:s-resize" onClick="taxis('blue_class')">归类</td>
            </tr>
            <xsl:apply-templates select="team" order-by="blue_ID"/>
        </table>
    </xsl:template>
    <xsl:template match="team">
        <tr align="center">
            <xsl:apply-templates select="blue_ID"/>
            <xsl:apply-templates select="blue_name"/>
            <xsl:apply-templates select="blue_text"/>
            <xsl:apply-templates select="blue_time"/>
            <xsl:apply-templates select="blue_class"/>
        </tr>
    </xsl:template>
    <xsl:template match="blue_ID">
        <td bgcolor="#eeeeee">
            <xsl:value-of/>
        </td>
    </xsl:template>
    <xsl:template match="blue_name">
        <td>
            <xsl:value-of/>
        </td>
    </xsl:template>
    <xsl:template match="blue_text">
        <td>
            <xsl:value-of/>
        </td>
    </xsl:template>
    <xsl:template match="blue_time">
        <td>
            <xsl:value-of/>
        </td>
    </xsl:template>
    <xsl:template match="blue_class">
        <td>
            <xsl:value-of/>
        </td>
    </xsl:template>
</xsl:stylesheet>

上一篇:XPATH中有四类基本的数据类型 下一篇:XSL的组成及工作原理