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

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

代码如下:

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

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

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值