使用xsl筛选记录[转载]

转载 2006年06月03日 17:36:00
最近使用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使用示例代码

  • 2015年10月21日 16:36
  • 57KB
  • 下载

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

  • 2008年11月12日 11:22
  • 16KB
  • 下载

使用xsl格式化显示xml,将xml显示在html中

User.xml --> 2015-07-14 11:39:31.63 13570271006 二之国 172.20.16...
  • iailp47
  • iailp47
  • 2015年07月16日 15:49
  • 330

【HTML/XML 5】使用XSL给XML文档添加样式

导读:上篇博客中以具体实例分析了HTML和XML在语义上的不同,但是,大家也都发现,XML表现出来的,并没有HTML那样直观或者说美观。其原因是因为XML的表现内容和表现形式被分离。它的表现形式有两种...

PHP使用XSL stylesheets解析转换XML文件

PHP与XSL stylesheets相结合来处理XML文档,似乎大家不常用,不过这却是一个很有用的技巧,在众多大型php web应用中,你肯定见到过与XSL stylesheets结合的例子,只是你...
  • dahuzix
  • dahuzix
  • 2015年06月06日 16:16
  • 446

XSL对象格式使用指南(三)

在前两篇中我们已经讨论了怎样处理封面页和内容页,现在我们准备把以下内容放入这西班牙评论手册里。   标题和段落属性由 元素控制,粗体和带下划线的词语由元素控制。现在开始描述第一个标题:  ...
  • yenange
  • yenange
  • 2012年01月31日 16:51
  • 907

使用FOP将xsl-fo转pdf

第三步骤:将生成的fo文件转成pdf。【由于.xsl文件不能识别中文,我在root路径下,给root添加了一个属性,font-family,让其可以识别中文。其余需要修改的属性或者样式,需要你自己修改...

XML介绍之XML使用CSS与XSL修饰

9.使用CSS来显示XML   -------------------------------------------------------------------------------- ...

在html属性中使用xsl变量

在使用xsl把xml转换成html中,有时候 html元素属性的值需要从xml文档中取 比如:的href属性 和 src属性 此时需要用到xsl中的变量: 声明变量: name是后续要用到的变量名称...

java编程 使用XSL+XML生成HTML文件

1.由于公司需要用xslt 结合 xml 使用,并生成数据,只好研究了一下;下面是一个简单示例: 第一步:创建一个userMessage.xml 文件 文件内容如下: [color=gray ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用xsl筛选记录[转载]
举报原因:
原因补充:

(最多只允许输入30个字)