最近使用xml DataIsland配合javascript 将标准的html表格TABLE扩展成了一个类似windows下的MSFlexGrid一样的具有丰富客户端行为的网格,在更新数据时,为了减少提交上传的xml文件的大小,便将原先绑定的数据集添加了一个标记节点<RecordFlag>,值只有三种NEW,UPDATE,DEL,分别用来表示其父节点是新增的,还是修改过的,或者是删除过的,并且在通过xmlhttp上传之前,将所有添加了<RecordFlag>的纪录筛选出来。在处理这个筛选的过程中,我先使用了javascript模拟了一个筛选算法,但是在数据岛数据很大时,筛选就很慢,于是左思右想,配合高人指点,使用xsl来处理了这个数据岛,用很快的速度就实现了大量数据的筛选过程。
我的xml结构是这样的
<root>
<record>
<field1>...</field1>
<field2>...</field2>
<field3>...</field3>
...
<fieldn>...</fieldn>
<record>
...
<record>
<field1>...</field1>
<field2>...</field2>
<field3>...</field3>
...
<fieldn>...</fieldn>
<RecordFlag>...</RecordFlag>
<!--做了手脚的纪录节点-->
<record>
...
</root>
xsl文件如下,名称为“select.xsl“:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "xml" omit-xml-declaration = "yes" indent = "yes"/>
<xsl:template match="node()">
<xsl:copy>
<xsl:for-each select="...">
<!--这里就是对应每个记录的节点名称,这里可以为record-->
<xsl:if test="RecordFlag">
<!--这里就是要筛选出来的标记节点名称,就是RecordFlag-->
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
通过以下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源码示例,使用xsl导出excel源码示例,使用xsl导出excel源码示例.
使用xsl来动态生成java代码,值得探讨
在XSL使用数组例子 在XSL使用数组例子 在XSL使用数组例子
xsl使用示例代码
XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。...本章讲解 XSL-FO 如何使用 XSLT。 XSL-FO 对象参考手册 完整的 XSL-FO 对象列表,以及它们的属性。
XSL函数大全 XSL元素大全 常用的XPATH手册 XSL知识速查
XSL实例 博文链接:https://it-ming-java.iteye.com/blog/1703464
就是让JavaScript使用一个XML解析器来进行转换。但是当浏览器不支持XML解析 器时,这种方法是不奏效的。要使XML数据对所有浏览器都可用,我们就必须在服 务器上转换XML文档,并将它作为纯HTML发送到浏览器。 这是...
XSL速查XSL速查XSL速查XSL速查XSL速查XSL速查
编写文件名为student2.xsl的XSL文件,其中,用<xsl:sort>对学生信息数据按照专业进行排序,并用<xsl:if>筛选出专业为“计算机”的学生信息。要求显示出的计算机专业的学生信息记录单元格背景色为黄色,字符为加粗的...
xsl、xml编程电子书和网页,适用于XSL和XML初学者
使用java解析word文件里得数学公式时,会用到该文件.可以将公式的格式转为目标格式. Mathml (MML) 全称为数学标记语言(Mathematical Markup Language),是一种基于XML的标准,用来在互联网上书写数学符号和公式的置...
使用JavaScript+XML+XSL创建树形目录,源码及示例
java XSL解析器
很不错的xsl;很不错的xsl;很不错的xsl
XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档XSL 官方文档
XML+xsl讲XML文档的内容用xsl建表。
xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页
SAP PI XSL mapping 模板