XML卷之实战锦囊-之-Qr修改版
2005/12/16 18:50:01
阅读全文(4146) | 回复(1) | 编辑 | 精华
关于“XML卷之实战锦囊”的这篇文章,的确是个不错的示例,但使用的是草案版的命名空间。在“中国XML论坛”中有很多相关的问题,干脆就把它按标准版修改,供大家参考。尽可能保持原来的代码,实在不行,会按偶个人的写法去修改。—— Qr。 XML文档:pages.xml <?xml version="1.0" encoding="gb2312" ?> <!--***************************************************--><!--特注:XML卷之实战锦囊(作者:車仔)XSLT1.0修改版--><!--修改:Qr——中国XML论坛[/" target=_blank>http://bbs.xml.org.cn]--><!--说明:代码的修改原则上保留原代码,只在原代码基础上按XSLT1.0标准版进行改写--><!--***************************************************--> <?xml-stylesheet type="text/xsl" href="pages.xsl" ?><!--?xml-stylesheet type="text/xsl" href="search.xsl" ?--><!--?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> 动态排序 paixu.xsl: <?xml version="1.0" encoding="gb2312" ?><xsl:stylesheet version="1.0" xmlns:xsl="' target=_blank>http://www.w3.org/1999/XSL/Transform"> <!--***************************************************--><!--特注:XML卷之实战锦囊(作者:車仔)XSLT1.0修改版--><!--修改:Qr——中国XML论坛[/" target=_blank>http://bbs.xml.org.cn]--><!--说明:代码的修改原则上保留原代码,只在原代码基础上按XSLT1.0标准版进行改写--><!--***************************************************--> <xsl:template match="/"><html><head><title>XML卷之实战锦囊-之-Qr修改版:动态排序</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("//xsl:sort/@select");sortField.value=x; Layer1.innerHTML=source.documentElement.transformNode(stylesheet); }</script></head><body><p align="center"><span>XML卷之实战锦囊-之-Qr修改版:动态排序</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:hand" onClick="taxis('blue_ID')">编号</td><td style="cursor:hand" onClick="taxis('blue_name')">姓名</td><td style="cursor:hand" onClick="taxis('blue_text')">主题</td><td style="cursor:hand" onClick="taxis('blue_time')">发表时间</td><td style="cursor:hand" onClick="taxis('blue_class')">归类</td></tr><xsl:for-each select='team'><xsl:sort select="blue_ID"/><tr align="center"><td bgcolor="#eeeeee"><xsl:value-of select="blue_ID"/></td><td><xsl:value-of select="blue_name"/></td><td><xsl:value-of select="blue_text"/></td><td><xsl:value-of select="blue_time"/></td><td><xsl:value-of select="blue_class"/></td></tr></xsl:for-each></table><div style="color:#f00" align="center">点击表头排序</div></xsl:template> </xsl:stylesheet> 动态查询 search.xsl: <?xml version="1.0" encoding="gb2312" ?><xsl:stylesheet version="1.0" xmlns:xsl="' target=_blank>http://www.w3.org/1999/XSL/Transform"> <!--***************************************************--><!--特注:XML卷之实战锦囊(作者:車仔)XSLT1.0修改版--><!--修改:Qr——中国XML论坛[/" target=_blank>http://bbs.xml.org.cn]--><!--说明:代码的修改原则上保留原代码,只在原代码基础上按XSLT1.0标准版进行改写--><!--***************************************************--> <xsl:template match="/"><html><head><title>XML卷之实战锦囊-之-Qr修改版:动态查询</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 searchtext(x) {stylesheet=document.XSLDocument;source=document.XMLDocument;sortField=document.XSLDocument.selectNodes("//@select");if (x!=""){sortField[1].value="team[blue_ID='"+x+"']";Layer1.innerHTML=source.documentElement.transformNode(stylesheet);}else {alert("请输入筛选条件!");} }</script></head><body><p align="center"><span>XML卷之实战锦囊-之-Qr修改版:动态查询</span></p><div id="Layer1" name="Layer1"><xsl:apply-templates select="BlueIdea" /></div><hr size="1" width="500" /><table align="center" cellpadding="0" cellspacing="0" border="0" ><tr><td><span >请输入筛选条件 : </span>blue_ID= <input type="text" name="searchtext" size="1" maxlength="1" /><input type="button" class="button" onClick="searchtext(document.all.searchtext.value)" value="Search" name="button" /></td></tr></table></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>编号</td><td>姓名</td><td>主题</td><td>发表时间</td><td>归类</td></tr><xsl:apply-templates select="team"/></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 select="."/></td></xsl:template><xsl:template match="blue_name"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_text"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_time"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_class"><td><xsl:value-of select="."/></td></xsl:template></xsl:stylesheet> 动态分页 pages.xsl: <?xml version="1.0" encoding="gb2312" ?><xsl:stylesheet version="1.0" xmlns:xsl="' target=_blank>http://www.w3.org/1999/XSL/Transform"> <!--***************************************************--><!--特注:XML卷之实战锦囊(作者:車仔)XSLT1.0修改版--><!--修改:Qr——中国XML论坛[/" target=_blank>http://bbs.xml.org.cn]--><!--说明:代码的修改原则上保留原代码,只在原代码基础上按XSLT1.0标准版进行改写--><!--***************************************************--> <xsl:template match="/"><html><head><title>XML卷之实战锦囊-之-Qr修改版:动态分页</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; }.keybutton { cursor:hand; font-size: 12px; color: #003300; background: #ffffff; border: 0px solid;}</style><script> <xsl:comment> <![CDATA[ var OnePageNum=2; var PageNum=1; var XMLPageNum=1; function pages(Num) { stylesheet=document.XSLDocument; source=document.XMLDocument; nodes=source.documentElement.childNodes; len=nodes.length; for(i=1;i<=(len/OnePageNum);i++); XMLPageNum=i; var firstNum=0; var lastNume=0; if (Num=="first") {PageNum=1;} if (Num=="previous") {if (PageNum>1) PageNum -=1;} if (Num=="next") {if (PageNum<XMLPageNum) PageNum +=1;} if (Num=="last") {PageNum =XMLPageNum;} sortField=document.XSLDocument.selectSingleNode("//@test"); firstNum=OnePageNum*(PageNum-1)+1; lastNum=OnePageNum*(PageNum-1)+OnePageNum; text="position()>="+firstNum+" and position()<="+lastNum; sortField.text=text; Layer1.innerHTML=source.documentElement.transformNode(stylesheet); } ]]> </xsl:comment> </script></head> <body><p align="center"><span>XML卷之实战锦囊-之-Qr修改版:动态分页</span></p> <table align="center" width="500" > <tr> <td> <button id="cmdfirstPage" class="keybutton" onclick="pages('first');" >首页</button> <button id="cmdpreviousPage" class="keybutton" onclick="pages('previous');" >上一页 </button><button id="cmdnextPage" class="keybutton" onclick="pages('next');">下一页</button> <button id="cmdlastPage" class="keybutton" onclick="pages('last');">尾页</button> </td> </tr> </table> <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>编号</td><td>姓名</td><td>主题</td><td>发表时间</td><td>归类</td></tr><xsl:apply-templates select="team"/></table></xsl:template><xsl:template match="team"><xsl:if test="position()>=1 and position() <= 2"><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:if> </xsl:template><xsl:template match="blue_ID"><td bgcolor="#eeeeee"><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_name"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_text"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_time"><td><xsl:value-of select="."/></td></xsl:template><xsl:template match="blue_class"><td><xsl:value-of select="."/></td></xsl:template></xsl:stylesheet> “选单连动”不存在“草案”与“标准”的问题,不改了。“结构树图”略过。
Posted by Qr on 2005/12/16 18:50:01
动态排序(做了点小小的改动)
2005/12/16 19:05:13
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
<?xml version="1.0" encoding="gb2312" ?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!--***************************************************--><!--特注:XML卷之实战锦囊(作者:車仔)XSLT1.0修改版--><!--修改:Qr——中国XML论坛[http://bbs.xml.org.cn]--><!--说明:代码的修改原则上保留原代码,只在原代码基础上按XSLT1.0标准版进行改写--><!--***************************************************--> <xsl:template match="/"><html><head><title>XML卷之实战锦囊-之-Qr修改版:动态排序</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("//xsl:sort/@select");sortField.value=x; Layer1.innerHTML=source.documentElement.transformNode(stylesheet); }</script></head><body><p align="center"><span>XML卷之实战锦囊-之-Qr修改版:动态排序</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:hand" onClick="taxis('blue_ID')">编号</td><td style="cursor:hand" onClick="taxis('blue_name')">姓名</td><td style="cursor:hand" onClick="taxis('blue_text')">主题</td><td style="cursor:hand" onClick="taxis('blue_time')">发表时间</td><td style="cursor:hand" onClick="taxis('blue_class')">归类</td></tr> <xsl:apply-templates select="team"><xsl:sort select="blue_ID"/></xsl:apply-templates> </table><div style="color:#f00" align="center">点击表头排序</div></xsl:template> <xsl:template match="team"><tr align="center"><td bgcolor="#eeeeee"><xsl:value-of select="blue_ID"/></td><td><xsl:value-of select="blue_name"/></td><td><xsl:value-of select="blue_text"/></td><td><xsl:value-of select="blue_time"/></td><td><xsl:value-of select="blue_class"/></td></tr></xsl:template> </xsl:stylesheet>
Posted by Qr on 2005/12/16 19:05:13
| 发表评论: |