`
sjk2013
  • 浏览: 2182599 次
文章分类
社区版块
存档分类
最新评论

XSL中实现用户筛选

 
阅读更多

在 XSL 中实现用户筛选,折腾了好久,总算是搞定了

功能需求:

有如下 xml ,拟做一个 XSL 文件做解析,解析的效果是在解析后的页面下,有个DropdownList ,它列出所有的Group/@name值,允许用户通过选择来筛选XSL最终展示出来的数据

<?xml-stylesheettype="text/xsl" href="filter.xsl"?>

<root>

<groupname="group1">

<itemid="1">item 1</item>

<itemid="2">item 2</item>

</group>

<groupname="group2">

<itemid="1">item a</item>

<itemid="2">item b</item>

</group>

</root>

达到这个效果的 filter.xsl 文件如下:

<?xmlversion="1.0"?>

<xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:outputmethod="xml"indent="yes"/>

<xsl:templatematch="/">

<html>

<head>

<metacontent="text/html"http-equiv="Content-Type"></meta>

<scriptlanguage="javascript"name="Filter">

<![CDATA[

function filter_group(sName) {

var iXml = document.XMLDocument;

var iXsl = document.XSLDocument;

var iPara = iXsl.selectSingleNode('//xsl:param[@name="GroupName"]/@select');

iPara.value = "'" + sName + "'";

var iHtml = iXml.documentElement.transformNode(iXsl);

Layer_Display.innerHTML = iHtml;

}

]]>

</script>

</head>

<body>

<table>

<tr>

<td>

<formstyle="BORDER: 0">

<selectid="frm_Server">

<optionvalue=""><![CDATA[<- Please Select ->]]></option>

<xsl:for-eachselect ="root/group/@name">

<xsl:sortselect ="."/>

<option>

<xsl:attributename ="value">

<xsl:value-ofselect="."/>

</xsl:attribute>

<xsl:iftest="position() =1">

<xsl:attributename ="selected">1</xsl:attribute>

</xsl:if>

<xsl:value-ofselect="."/>

</option>

</xsl:for-each>

<optionvalue="*"><![CDATA[<- ALL ->]]></option>

</select>

<buttononClick="filter_group(this.form.frm_Server.value)">Query</button>

</form>

</td>

</tr>

<tr>

<td>

<divid="Layer_Display">

<xsl:apply-templatesselect="root"/>

</div>

</td>

</tr>

</table>

</body>

</html>

</xsl:template>

<xsl:templatematch="root">

<xsl:paramname="GroupName"select ="(group/@name)[1]"/>

<xsl:apply-templatesselect="group[@name=$GroupName or $GroupName = '*']"/>

</xsl:template>

<xsl:templatematch="group">

<table>

<thead>

<tr>

<th>id</th>

<th>value</th>

</tr>

</thead>

<tbody>

<xsl:for-eachselect="item">

<tr>

<td>

<xsl:value-ofselect="@id"/>

</td>

<td>

<xsl:value-ofselect="."/>

</td>

</tr>

</xsl:for-each>

</tbody>

</table>

</xsl:template>

</xsl:stylesheet>

分享到:
评论

相关推荐

    X3BLOG AJAX国产大型开源多用户博客系统 1.1.0.beta1源码版

    * 使用开源UrlRewrite筛选器Ionic's Isapi Rewriter替换了商业的ISAPI Rewriter * 修正了一处安装为虚拟目录时的路径指向错误 * 加入了类似QQ空间的相册上下翻页功能 * 加入了大量的服务器端和脚本代码注释 * ...

    X3BLOG AJAX国产大型开源多用户博客系统 1.1.0.beta1编译版

    * 使用开源UrlRewrite筛选器Ionic's Isapi Rewriter替换了商业的ISAPI Rewriter * 修正了一处安装为虚拟目录时的路径指向错误 * 加入了类似QQ空间的相册上下翻页功能 * 加入了大量的服务器端和脚本代码注释 * ...

    XML,XSLT,AJAX三大技术打造开源多用户博客X3BLOG

    无Session设计杜绝了用户会话无故丢失的尴尬,客户端关联的会话加密方式带来了用户数据的高安全性,独特的XSL结构设计,彻底消除了跨站脚本攻击的隐患,杜绝恶意代码的执行,同时保证了文章内容的完整性。...

    ASP.NET3.5从入门到精通

    6.3.1 生成用户控件(CreateUserWizard) 6.3.2 密码更改控件(ChangePassword) 6.4 小结 第三篇 数据操作篇 第 7 章数据库与 ADO.NET 基础 7.1 数据库基础 7.1.1 结构化查询语言 7.1.2 表和视图 7.1.3 存储过程和...

    ASP.NET 3.5 开发大全11-15

    6.3.1 生成用户控件(CreateUserWizard) 6.3.2 密码更改控件(ChangePassword) 6.4 小结 第三篇 数据操作篇 第7章 数据库与ADO.NET基础 7.1 数据库基础 7.1.1 结构化查询语言 7.1.2 表和视图 7.1.3 存储过程和...

    ASP.NET 3.5 开发大全

    6.3.1 生成用户控件(CreateUserWizard) 6.3.2 密码更改控件(ChangePassword) 6.4 小结 第三篇 数据操作篇 第7章 数据库与ADO.NET基础 7.1 数据库基础 7.1.1 结构化查询语言 7.1.2 表和视图 7.1.3 存储过程和...

    ASP.NET 3.5 开发大全1-5

    6.3.1 生成用户控件(CreateUserWizard) 6.3.2 密码更改控件(ChangePassword) 6.4 小结 第三篇 数据操作篇 第7章 数据库与ADO.NET基础 7.1 数据库基础 7.1.1 结构化查询语言 7.1.2 表和视图 7.1.3 存储过程和...

    ASP.NET 3.5 开发大全word课件

    这是整部学习资料 由于太大第一章免费供应给大家 在我的上传资源中 如果觉得还不过希望大家给个好评 当然具体本书的作者就不深究了把! 第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP...

    ASPNET35开发大全第一章

    6.3.1 生成用户控件(CreateUserWizard) 6.3.2 密码更改控件(ChangePassword) 6.4 小结 第三篇 数据操作篇 第7章 数据库与ADO.NET基础 7.1 数据库基础 7.1.1 结构化查询语言 7.1.2 表和视图 7.1.3 存储过程和...

    X3BLOG v0.7.5.0

    &lt;br&gt; 无Session设计杜绝了用户会话无故丢失的尴尬,客户端关联的会话加密方式带来了用户数据的高安全性,独特的XSL结构设计,彻底消除了跨站脚本攻击的隐患,杜绝恶意代码 &lt;br&gt;的执行,同时保证了文章内容的...

    PHP程序开发范例宝典III

    实例150 不刷新页面筛选数据库中的数据 227 实例151 查询企业员工的详细信息 229 6.5 数据删除 231 实例152 单条数据删除 231 实例153 批量数据删除 232 实例154 删除数据前给予提示信息 234 实例155 ...

    Java数据库编程宝典2

    15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...

    Java数据库编程宝典4

    15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...

    Java数据库编程宝典1

    15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...

    Java数据库编程宝典3

    15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...

Global site tag (gtag.js) - Google Analytics