`
isiqi
  • 浏览: 16559628 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

使用xsl筛选记录[转载]

阅读更多
最近使用xml DataIsland配合javascript 将标准的html表格TABLE扩展成了一个类似windows下的MSFlexGrid一样的具有丰富客户端行为的网格,在更新数据时,为了减少提交上传的xml文件的大小,便将原先绑定的数据集添加了一个标记节点<RecordFlag>,值只有三种NEW,UPDATE,DEL,分别用来表示其父节点是新增的,还是修改过的,或者是删除过的,并且在通过xmlhttp上传之前,将所有添加了<RecordFlag>的纪录筛选出来。在处理这个筛选的过程中,我先使用了javascript模拟了一个筛选算法,但是在数据岛数据很大时,筛选就很慢,于是左思右想,配合高人指点,使用xsl来处理了这个数据岛,用很快的速度就实现了大量数据的筛选过程。
我的xml结构是这样的
&lt;root&gt;
&lt;record&gt;
&lt;field1&gt;...&lt;/field1&gt;
&lt;field2&gt;...&lt;/field2&gt;
&lt;field3&gt;...&lt;/field3&gt;
...
&lt;fieldn&gt;...&lt;/fieldn&gt;
&lt;record&gt;
...
&lt;record&gt;
&lt;field1&gt;...&lt;/field1&gt;
&lt;field2&gt;...&lt;/field2&gt;
&lt;field3&gt;...&lt;/field3&gt;
...
&lt;fieldn&gt;...&lt;/fieldn&gt;
&lt;RecordFlag&gt;...&lt;/RecordFlag&gt;
&lt;!--做了手脚的纪录节点--&gt;
&lt;record&gt;
...
&lt;/root&gt;
xsl文件如下,名称为“select.xsl“:
&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
&lt;xsl:output method = "xml" omit-xml-declaration = "yes" indent = "yes"/&gt;
&lt;xsl:template match="node()"&gt;
&lt;xsl:copy&gt;
&lt;xsl:for-each select="..."&gt;
&lt;!--这里就是对应每个记录的节点名称,这里可以为record--&gt;
&lt;xsl:if test="RecordFlag"&gt;
&lt;!--这里就是要筛选出来的标记节点名称,就是RecordFlag--&gt;
&lt;xsl:copy-of select="."/&gt;
&lt;/xsl:if&gt;
&lt;/xsl:for-each&gt;
&lt;/xsl:copy&gt;
&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;
通过以下javascript实现了转换:
function getResultSet()
{
var recordset = document.getElementById(you island id)
var xslselect = new ActiveXObject('MSXML2.DOMDocument');
xslselect.async = false;
xslselect.load('select.xsl');
var resultset = new ActiveXObject('MSXML2.DOMDocument');
resultset.loadXML(recordset.xml)
//由于Island在浏览器端不支持transformNode()方法,所以得用一
//个MSXML2DOM来转换一下。
resultset.loadXML(resultset.transformNode(resultset));
return resultset;
}

分享到:
评论

相关推荐

    使用xsl导出excel源码示例

    当我们谈论“使用XSL导出Excel源码示例”时,实际上是指通过XSLT(XSL Transformations)将XML数据转换成Excel格式,从而生成可编辑的Excel文件。下面将详细介绍这一过程及相关知识点。 1. **XSLT基础**:XSLT是...

    使用xsl来动态生成java代码

    使用XSL来动态生成Java代码是一项结合了XML和XSL技术的强大功能,旨在自动化地创建或更新基于模板的代码片段。XSL(Extensible Stylesheet Language)是一种用于转换XML文档的语言,它允许开发者将一种XML格式的数据...

    在xml中使用CSS和XSL

    总的来说,XML、CSS和XSL的结合使用,为处理结构化数据提供了极大的灵活性和表现力。通过学习和熟练掌握这些技术,你可以更好地管理和展示你的数据,无论是用于网页开发、数据交换还是其他各种IT应用场景。

    在XSL使用数组例子

    以下是对"在XSL中使用数组例子"这一主题的详细解释。 1. **数组概念的模拟** 在XSL中,我们不能像在其他编程语言中那样声明一个数组并初始化它。然而,我们可以通过创建一系列的变量或模板来模拟数组。每个变量...

    xsl使用示例代码

    而XSL(eXtensible Stylesheet Language)是用于转换XML文档格式的语言,它通过使用样式表来控制XML数据的呈现方式。XSLT(XSL Transformations)是XSL的一部分,专门用于转换XML文档。在本示例中,我们将深入探讨...

    XSL开发基础参考资料

    理解并熟练使用这些元素,能帮助开发者构建出功能强大的转换规则。 **XPath**: XPath是XML路径语言,用于在XML文档中定位信息。它提供了一种简洁的方式来选取节点、属性和文本。XPath表达式可以用来选取单个节点,...

    xsl javascript 传递参数

    JavaScript,作为Web开发中的主要脚本语言,经常与XSL和XPath结合使用,以实现动态数据处理和页面交互。在这个主题“xsl javascript 传递参数”中,我们将深入探讨如何在XSL转换过程中通过JavaScript传递参数,并...

    XSL简明教程(5)

    ### XSL简明教程(5): 使用Order-by属性进行排序 在XML与XSL的世界里,数据处理变得异常灵活和强大。本章节我们将探讨如何利用XSL中的`order-by`属性来对XML文档进行排序,这在实际应用中非常有用,尤其是在需要根据...

    XSL Split

    例如,一个大型电子商务网站可能需要定期备份其产品数据库,使用XSL Split可以将大文件分割成多个小文件,方便存储和恢复。又如,在大数据分析中,将XML数据拆分后,可以在多台机器上并行处理,提高计算效率。 本文...

    网页XSL基础教程,支持XML和XSL

    这段代码使用了Microsoft XML DOM对象来处理XML和XSL文件,并最终通过`transformNode`方法完成转换。 **在服务器端的示例代码** 为了实现在服务器端的转换,可以使用以下ASP脚本代码: ```asp ' 加载XML文件 Set...

    XSL-FO 教程

    XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。...本章讲解 XSL-FO 如何使用 XSLT。 XSL-FO 对象参考手册 完整的 XSL-FO 对象列表,以及它们的属性。

    xsl官方文档

    XSL(Extensible Stylesheet Language)是一种用于转换XML...无论是进行数据转换、筛选还是格式化,XSL都能提供强大的工具来满足需求。通过深入研究官方文档,开发者可以更好地利用XSL来提高XML处理的效率和灵活性。

    跟我学xsl.doc

    此外,熟悉XPath的语法和功能对于有效使用XSL至关重要,因为XPath是XSLT中定位和操作XML数据的主要工具。 五、实际应用 XSL在许多领域都有广泛应用,如网页动态生成、数据交换、报告生成等。通过XSL,开发者可以...

    java XSL解析器

    在Java中,要使用XSL解析器,你需要遵循以下步骤: 1. **创建TransformerFactory对象**:这是整个转换过程的起点。使用`TransformerFactory.newInstance()`方法可以创建一个`TransformerFactory`实例,它是生成转换...

    使用JavaScript+XML+XSL创建树形目录

    在HTML页面中,我们可以使用JavaScript来加载XML和XSL文件,然后应用XSL转换得到HTML,最后使用DOM操作来实现树形目录的交互功能。以下是一个简单的JavaScript示例: ```javascript function loadTree() { var xhr...

    xsl解析xml生成表格,表格行动态隐藏与显示

    本主题主要关注如何使用XSL解析XML以生成表格,并通过JavaScript实现表格行的动态隐藏与显示。 首先,我们要理解XSL的工作原理。XSL由三部分组成:XSLT(XSL Transformations),XPath(XML Path Language)和XSL-...

    xsl、xml编程电子书和网页

    标题中的“xsl、xml编程电子书和网页”揭示了我们即将探讨的主题——XSL(Extensible Stylesheet Language)和XML(eXtensible Markup Language)的编程知识。这两个技术在处理结构化数据方面起着关键作用,尤其在...

    xsl教程

    通过调用`TransformerFactory.newInstance()`创建一个工厂,然后使用`newTransformer()`方法加载XSL样式表。接着,`transform()`方法执行实际的转换操作,输入源和结果目标分别由`StreamSource`和`StreamResult`表示...

    XSL 中文教程大全

    总的来说,这个教程大全涵盖了XSLT的各个方面,包括基本概念、语法、实例、XPath使用和客户端实现,非常适合对XSL感兴趣的初学者系统学习。通过这些资源,你可以建立起对XSLT的深入理解和实践能力。

Global site tag (gtag.js) - Google Analytics