在Domino中利用XSL和XML输出
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
数据列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
关键字:Domino、XSL、XML、数据列表
概述
在Domino环境中输出视图文档列表的有很多种
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,比如有嵌入视图方法、有XML方法、有利用视图的HTML属性方法,以上这些方法只能用固定的一种样式显示视图数据,如果对于同一数据可按照不同样式进行输出需要考虑使用其他方式,这里介绍的就是利用XSL+XML技术完全在客户端利用Javascript语言来实现多样式数据的展示,实现系统的分页等功能。
XSL介绍
1.XSL---XML的样式表
HTML网页使用预先确定的标识(tags),这就是说所有的标记都有明确的含义,例如
是另起一行
可以理解为表格,也可以理解为桌子。由于XML的可扩展性,使我们没有一个标准的办法来显示XML文档。
为了控制XML文档的显示,我们有必要建立一种机制,CSS就是其中的一种,但是XSL(eXtensible Stylesheet Language)是显示XML文档的首选样式语言,它比CSS更适合于XML。
2.XSL --- 不仅仅是一种样式表
XSL由两部分组成:
一是转化XML文档;二是格式化XML文档。
XSL是一种可以将XML转化成HTML的语言,一种可以过滤和选择XML数据的语言,一种能够格式化XML数据的语言。
3.XSL --- 它能做什么?
XSL可以被用来定义XML文档如何显示,可以将XML文档转换成能被浏览器识别的HTML文件,通常的,XSL是通过将每一个XML元素"翻译"为HTML元素,来实现这种转换的。
XSL能够向输出文件里添加新的元素,或则移动元素。XSL也能够重新排列或者索引数据,它可以检测并决定哪些元素被显示,显示多少。
在Domino中XSL的实现方案
在Domino环境中需要利用视图的readviewentries的URL方法访问视图用来返回XML格式数据,然后利用实现准备好的XSL文件来格式化返回的XML数据,最后利用XSL的转换格式功能,把XML格式数据转换成HTML数据用来显示最终数据列表。
在使用XSL格式XML数据时系统可以提供基于客户端的解决方式,也可以提供基于服务器端的解决方式,根据浏览器版本以及类型的不同,我们这里选用基于客户端的解决方式实现。
1. JavaScript解决方案
一个更好的更全面的解决方案是使用Javascript来实现XML到HTML的转换。但是使用JavaScript必须得到以下功能支持:
a.允许Javascript代替浏览器进行细节检测;
b.根据不同的需要和不同的浏览器使用不同的样式表。
对于XSL来说这是完全可行的。设计XSL的目标之一就是允许将一种格式转换成另一种格式,支持不同的浏览器,支持不同的用户需求。未来的浏览器的重要任务就是在客户端执行XSL的转换工作。
2. 基于客户端的XSL实现逻辑处理结构图
系统实现逻辑结构图说明
1首先在客户端由用户发起显示数据列表的请求,请求有2个,一个用于要请求的Domino视图数据,以XML方式进行请求;另外一个是装载XSL文件的请求
2请求发起后Domino服务器端负责给客户端返回数据,分别返回Domino视图的XML数据和XSL文件的XML格式数据给客户端
3客户端接收到以上XML视图数据和XSL文件的XML数据后开始进行解析
4客户端首先解析XML视图数据,包括视图是否是分类视图、视图中各个列的宽度、视图中是否包含数据、视图中的分页信息等
5解析完XML视图数据后,开始解析XSL文件的XML数据,在解析过程中使用XSL样式表进行格式化XML视图数据
6完成以上所有解析后最后通过XSL的转换功能把最终的XML数据转换成HTML数据在客户端进行显示,完成数据展示。
实现细节
1. 首先定义XSL文件
XSL文件也是符合XML标准的XML文件,在该文件中通过XSL元素语言描述了如何解析XML格式数据,在这里的样式表用的是传统的CSS文件。
本案例中的XSL文件格式如下,文件编写完成后可以放在当前NSF数据库中,也可以放在HTML目录下,只要能够被Domino服务器的HTTP服务器请求到就可以,这里我们以放在当前数据库中为例进行说明。
XSL文件内容如下:
./0/?opendocument
checkbox
$$selectDoc
|
|
编写完成后存成文件扩展名为xsl类型的文件,然后在数据库资源文件中引入该文件。
注意地方:
1. 1首先在XSL文件中声明字符编码
1.2 指定XSL文件的版本号以及所引用的XSL标准,如果没有此句,XSL文件不能被正常解析。
2. 解析XML视图数据
在Domino的Script库中定义解析XML视图数据和XSL数据的代码,最后通过XSL的转换功能,把XML格式数据转换成HTML格式数据进行最终显示。
这里把主要代码整理出来,供参考。
var HTMLresults; //表单中以xml方式显示的数据库内容
var source; //由视图转化的xml文件
var style; //xsl文件,数据显示时应用的具体样式文件
var sortColumn; //排序列
var rowsnum //每页显示的行数,可以通过表单rowsval域自定义
var startnum=1 //视图搜索起始数目
var viewname //当前视图的名称
var pagenum //当前类别文档总页数
var catField //类别选择框seloption对象
var totaldoc //显示当前类别文档总数
var optiontext //类别选择框seloption的选项text值
var optionval //类别选择框seloption的选项value值
var htmlstr //条目统计文本
var pagestathtml //页数统计文本
var colwidthval //列的显示宽度,由colwidth确定
var tableheadtext //当文档为空时表头显示文本,由tablehead确定
var typelen //类别总数标志
var typetext //当前类别
//视图表单的装载
//装载文档,确定显示格式
function loadXML() {
//取得各相关显示数据
catField = document.forms[0].seloption
viewname=document.all.viewName.value
colwidthval=document.all.colwidth.value.split(",")
tableheadtext=document.all.tablehead.value.split(",")
rowsnum=document.all.rowsval.value
typestr=document.all.typeStr.value
typelenstr=document.all.numStr.value
source = new ActiveXObject("Microsoft.XMLDOM");
style = new ActiveXObject("Microsoft.XMLDOM");
source.onreadystatechange=stateChangeHandler //输出装载状态
source.async = false;
style.async = false;
source.validateOnParse = false;
source.resolveExternals = false;
source.preserveWhiteSpace = false;
typelen=0
setpath="style.xsl"
if ((typestr!=""&&typelenstr=="0")||(typestr==""&&typelenstr=="0"))
{
if (typestr ==""&&typelenstr=="0")
tmpstr="./"+viewname+"?ReadviewEntries&CollapseView"
if (typestr!=""&&typelenstr=="0")
tmpstr="./"+viewname+"?ReadViewEntries&RestrictToCategory="+typestr
source.load(tmpstr);
if(getReadyState()){
style.load(setpath);
if(style.parseError.errorCode != 0) {
showError();
}
else{
if (!source.getElementsByTagName("viewentries")[0].attributes[0]){
element=source.createAttribute("toplevelentries")
element.text=0
source.getElementsByTagName("viewentries")[0].attributes.setNamedItem(element)
}
source.getElementsByTagName("viewentries")[0].attributes[0].text=0
element=source.createElement("viewentry");
source.getElementsByTagName("viewentries")[0].appendChild(element);
for(var n=0;nparseInt(pagenum)){
pagenum=parseInt(pagenum)+1
}
else{
pagenum=parseInt(pagenum)
}
pagestathtml="共"+pagenum+"页,当前显示第1页,"
if(document.all.item("pagestat")){
document.all.item("pagestat").innerHTML=pagestathtml
}
if(parseInt(totaldoc)"
}
else{
htmlstr="共找到"+totaldoc+"条文档,当前显示1-"+rowsnum+"条"
}
if(document.all.item("totalstat")){
document.all.item("totalstat").innerHTML=htmlstr
}
}
}
}
doTransform();
}
//将xml文件格式转化为html格式,并输出到表单的HTMLresults中
function doTransform() {
if (getReadyState()){
resulting = source.transformNode(style);
}
}
注意地方:
2.1 把XML数据转换成HTML格式数据方法:doTransForm()中的source.transformNode(style).
系统环境
1. Lotus Domino6.5
2. IE6.0以上
本文档为【在Domino中利用XSL和XML输出格式数据列表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
格式:doc
大小:45KB
软件:Word
页数:0
分类:互联网
上传时间:2019-07-19
浏览量:0