使用XML与XSLT筛选页面显示的内容

博主学习XML和XSLT后,结合JavaScript实现了页面内容筛选显示。通过这种方式,在进行基本数据处理时无需重新载入页面,有效提高了效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       前段时间刚学了XML和XSLT,作为练习,我用XML和XSLT结合JavaScript写了一个实现页面内容筛选显示,这样在做一些基本的数据处理时就不需要重新载入页面了,提高了效率。

代码如下:

 1None.gif<?xml version="1.0" encoding="GB2312"?>
 2None.gif<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 3None.gif    <xs:element name="PoemList">
 4None.gif        <xs:complexType>
 5None.gif            <xs:sequence>
 6None.gif                <xs:element name="Poem" minOccurs="1" maxOccurs="unbounded">
 7None.gif                    <xs:complexType>
 8None.gif                        <xs:sequence>
 9None.gif                            <xs:element name="Title"/>
10None.gif                            <xs:element name="Write"/>
11None.gif                            <xs:element name="Text">
12None.gif                                <xs:complexType>
13None.gif                                    <xs:sequence>
14None.gif                                        <!-- 必须定义Line元素,否则诗句无法分行显示 -->
15None.gif                                        <xs:element name="Line" minOccurs="1" maxOccurs="unbounded"/>
16None.gif                                    </xs:sequence>
17None.gif                                </xs:complexType>
18None.gif                            </xs:element>
19None.gif                            <xs:element name="Mean"/>
20None.gif                        </xs:sequence>
21None.gif                        <xs:attribute name="Type" type="xs:string" use="required"/>
22None.gif                    </xs:complexType>
23None.gif                </xs:element>
24None.gif            </xs:sequence>
25None.gif        </xs:complexType>
26None.gif    </xs:element>
27None.gif</xs:schema>
28None.gif

  1None.gif<?xml version="1.0" encoding="UTF-8"?>
  2None.gif<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
  3None.gif    <xsl:output version="1.0" encoding="GB2312" indent="no" omit-xml-declaration="no" media-type="text/html" />
  4None.gif    <xsl:template match="/">
  5None.gif        <html>
  6None.gif            <head>
  7None.gif                <title>SelectPoem</title>
  8None.gif                <script language="javascript">
  9None.gif                    function selectPoem(write,selectedIndex)    {
 10None.gif                        stylesheet      = document.XSLDocument;
 11None.gif                        xmldoc            = document.XMLDocument;
 12None.gif                        selectField     = stylesheet.selectSingleNode("//xsl:if/@test");
 13None.gif
 14None.gif                        if( write == "全部" )
 15None.gif                            selectField.value    = "Write=*";
 16None.gif                        else
 17None.gif                            selectField.value      = "Write='" + write + "'";
 18None.gif
 19None.gif                        PoemList.innerHTML      = xmldoc.documentElement.transformNode(stylesheet);
 20None.gif            document.SelectPoemForm.SelectPoemList.selectedIndex    = selectedIndex;
 21None.gif                    }
 22None.gif                </script>
 23None.gif            </head>
 24None.gif            <body>
 25None.gif                <br />
 26None.gif                <div id="PoemList">
 27None.gif                    <xsl:apply-templates select="PoemList"/>
 28None.gif                </div>
 29None.gif            </body>
 30None.gif        </html>
 31None.gif    </xsl:template>
 32None.gif    <xsl:template match="PoemList">
 33None.gif        <table align="center" border="0">
 34None.gif            <thead>
 35None.gif                <tr align="center">
 36None.gif                    <td align="center" height="39">
 37None.gif                        <h1> 唐&#160;&#160; 诗</h1>
 38None.gif                    </td>
 39None.gif                </tr>
 40None.gif            </thead>
 41None.gif            <tbody>
 42None.gif                <tr>
 43None.gif                    <td align="center">
 44None.gif            <form name="SelectPoemForm">
 45None.gif            作者:
 46None.gif                        <select id="SelectPoemList" name="SelectPoem" class="droplist" onChange="selectPoem(this.options[selectedIndex].text,selectedIndex);">
 47None.gif                            <option>全部</option>
 48None.gif                            <xsl:for-each select="Poem">
 49None.gif                                <option>
 50None.gif                                    <xsl:value-of select="Write"/>
 51None.gif                                </option>
 52None.gif                            </xsl:for-each>
 53None.gif                        </select>
 54None.gif                        </form>
 55None.gif                        <hr color="black" size="2" />
 56None.gif                        <br />
 57None.gif                        <xsl:for-each select="Poem">
 58None.gif                            <xsl:if test="Write=*">
 59None.gif                                <table align="center" border="0">
 60None.gif                                    <tbody>
 61None.gif                                        <tr align="center" valign="middle">
 62None.gif                                            <td align="center" height="2" valign="center" width="350">
 63None.gif                                                <span style="font-size:larger; font-weight:bold; ">
 64None.gif                                                    <xsl:value-of select="Title" />
 65None.gif                                                </span>
 66None.gif                                            </td>
 67None.gif                                            <td height="2" rowspan="3" width="1"></td>
 68None.gif                                            <td align="left" height="2" rowspan="2" width="350">类型: <xsl:value-of select="@Type" />
 69None.gif                                            </td>
 70None.gif                                        </tr>
 71None.gif                                        <tr>
 72None.gif                                            <td align="center" width="350">
 73None.gif                                                <span style="font-size:smaller; ">
 74None.gif                                                    <xsl:value-of select="Write" />
 75None.gif                                                </span>
 76None.gif                                            </td>
 77None.gif                                        </tr>
 78None.gif                                        <tr align="center">
 79None.gif                                            <td align="center" valign="center" width="350">
 80None.gif                                                <xsl:for-each select="Text">
 81None.gif                                                    <br />
 82None.gif                                                    <xsl:for-each select="Line">
 83None.gif                                                        <xsl:value-of select="." />
 84None.gif                                                        <br />
 85None.gif                                                    </xsl:for-each>
 86None.gif                                                    <br />
 87None.gif                                                </xsl:for-each>
 88None.gif                                                <br />
 89None.gif                                            </td>
 90None.gif                                            <td align="left" height="20" rowspan="2" valign="center" width="350">
 91None.gif                                                <xsl:value-of select="Mean" />
 92None.gif                                            </td>
 93None.gif                                        </tr>
 94None.gif                                    </tbody>
 95None.gif                                </table>
 96None.gif                                <hr color="#E8E8E8" size="1" />
 97None.gif                                <br />
 98None.gif                            </xsl:if>
 99None.gif                        </xsl:for-each>
100None.gif                        <br />
101None.gif                        <hr color="black" size="2" />
102None.gif                        <br />
103None.gif                    </td>
104None.gif                </tr>
105None.gif            </tbody>
106None.gif        </table>
107None.gif    </xsl:template>
108None.gif</xsl:stylesheet>
 1None.gif<?xml version="1.0" encoding="GB2312"?>
 2None.gif<?xml-stylesheet type="text/xsl" href="SelectPoem.xslt"?>
 3None.gif<PoemList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SelectPoem.xsd">
 4None.gif    <Poem Type="七言绝句">
 5None.gif        <Title>送孟浩然之广陵</Title>
 6None.gif        <Write>李白</Write>
 7None.gif        <Text>
 8None.gif            <Line>故人西辞黄鹤楼,烟花三月下扬州。</Line>
 9None.gif            <Line>孤帆远影碧空尽,惟见长江天际流。</Line>
10None.gif        </Text>
11None.gif        <Mean>
12None.gif            老朋友孟浩然,辞别西楚的黄鹤楼;
13None.gif            阳春三月烟花如海,他去游历扬州。
14None.gif            一叶孤舟,远远地消失在碧空尽头;
15None.gif            只见浩浩荡荡的长江,向天际奔流!
16None.gif        </Mean>
17None.gif    </Poem>
18None.gif    <Poem Type="七言绝句">
19None.gif        <Title>江南逢李龟年</Title>
20None.gif        <Write>杜甫</Write>
21None.gif        <Text>
22None.gif            <Line>岐王宅里寻常见,崔九堂前几度闻。</Line>
23None.gif            <Line>正是江南好风景,落花时节又逢君。</Line>
24None.gif        </Text>
25None.gif        <Mean>
26None.gif            当年在岐王宅里,常常见到你的演出;
27None.gif            在崔九堂前,也曾多次欣赏你的艺术。
28None.gif            没有想到,在这风景一派大好的江南;
29None.gif            正是落花时节,能巧遇你这位老相熟。
30None.gif        </Mean>
31None.gif    </Poem>
32None.gif    <Poem Type="五言律诗">
33None.gif        <Title>送杜少府之任蜀州</Title>
34None.gif        <Write>王勃</Write>
35None.gif        <Text>
36None.gif            <Line>城阙辅三秦,风烟望五津。</Line>
37None.gif            <Line>与君离别意,同是宦游人。</Line>
38None.gif            <Line>海内存知己,天涯若比邻。</Line>
39None.gif            <Line>无为在岐路,儿女共沾巾。</Line>
40None.gif        </Text>
41None.gif        <Mean>
42None.gif            古代三秦之地,拱护长安城垣宫阙。
43None.gif            风烟滚滚,望不到蜀州岷江的五津。
44None.gif            与你握手作别时,彼此间心心相印;
45None.gif            你我都是远离故乡,出外做官之人。
46None.gif            四海之内只要有了你,知己啊知己,
47None.gif            不管远隔在天涯海角,都象在一起。
48None.gif            请别在分手的岐路上,伤心地痛哭;
49None.gif            象多情的少年男女,彼此泪落沾衣。
50None.gif        </Mean>
51None.gif    </Poem>
52None.gif    <Poem Type="七言乐府诗">
53None.gif        <Title>出塞</Title>
54None.gif        <Write>王昌龄</Write>
55None.gif        <Text>
56None.gif            <Line>秦时明月汉时关,万里长征人未还。</Line>
57None.gif            <Line>但使龙城飞将在,不教胡马渡阴山。</Line>
58None.gif        </Text>
59None.gif        <Mean>
60None.gif            依旧是秦时的明月汉时的边关,
61None.gif            征战长久延续万里征夫不回还。
62None.gif            倘若龙城的飞将李广而今健在,
63None.gif            绝不许匈奴南下牧马度过阴山。
64None.gif        </Mean>
65None.gif    </Poem>
66None.gif</PoemList>
67None.gif

 

转载于:https://www.cnblogs.com/JiaweiZONE/archive/2005/11/12/274580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值