会员注册 | 登录 | 微信快捷登录 支付宝快捷登录 QQ登录 微博登录 | 帮助中心 人人文库renrendoc.com美如初恋!
站内搜索 百度文库

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

XML报表数据的新大陆.docXML报表数据的新大陆.doc -- 6 元

宽屏显示 收藏 分享

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

下载源码就到源码网,www.codepub.comXML报表数据的新大陆随着B/S系统的普及和XML技术的深入应用,越来越多的数据包裹着XML的外衣被存储和扔来扔去。这些数据很多源自数据库,但经过一定的处理,数据更精简,更贴近应用。如果报表工具能利用这些XML数据,则可以减少数据库查询和报表数据运算操作,因为这些XML数据的始作俑者已经完成了这些操作。因此说XML是报表数据的新大陆。传统的报表工具都是只能处理关系型数据库,基本上不能处理其他数据。随着时代的发展,一些报表工具加上了处理XML文档的能力,但需要编程,编写并配置插件,如此报表程序结构复杂,接口众多,用户还需要根据各种规范动手编写程序,若XML文档格式有很多种,就需要编写很多种的插件,报表开发量不小。如果实现了一种能处理XML文档,从中获得报表数据的通用方法。则在定制报表模板的时候就教育报表引擎如何从XML文档获得数据,则对于所有的或大部分的XML文档无需编程,可减少报表开发量。那么如何通用的处理具有复杂树状结构的XML文档呢大家知道,处理XML文档有两种模式,一个是DOM方式,另一个是流模式。DOM方式处理方便,但速度慢耗内存,流模式处理速度快,省内存但使用不方便。对于.NET平台,使用System.Xml.XmlDocument对象来使用DOM方式处理XML文档,而使用XmlReader来使用流模式处理XML文档。W3C国际标准组织设计XML文档的目标是方便的存储和交换小型数据包,而不考虑数据的冗余。因此若实际系统中出现巨大的XML文档,则大多数情况下可以认为是不恰当的使用XML技术。因此我认为报表工具不应当处理巨大的XML文档,在此前提下,为了实现方便,采用DOM方式来处理XML文档。在.NET中使用XmlDocument加载一个XML文档后,会形成一个以XmlDocument为根节点的XML对象树状结构,面对这个XML树结构,获取其中的数据方法很自然的就是使用XPath技术了。XPath技术就是在XML树状结构中,以某个节点作为起始节点,使用特定的描述表示的路径移动到其他的节点,一般的是向其下层节点移动,比如移动到某个子节点或孙节点,移动到某个属性等等。传统的报表数据源模型是两层的,即使扩展到可以处理XML文档也只能处理一次,既从根节点出发,使用某个XPath获得字段的值。如此只能处理一次,处理完毕后XML就被扔掉了。但很多时候需要对XML文档进行进一步处理。此时传统的两层报表数据源模型是不够的。下载源码就到源码网,www.codepub.com为了能对XML文档进行精耕细作,需要从传统的两层数据源结构突破到多层的报表数据源模型。在多层数据源节点中,每一个节点都映射到XML文档中的某个节点,而它的子节点则使用XPath路径映射到XML中的其他节点。如此递归循环后则多层的数据源可以映射到XML文档中的任意节点。多层数据源模型实际上就是一个数据源树,因此处理XML文档也就是将两颗树在某些节点上钉在一起,而XPath就是钉子。因此需要注意各级数据源节点的XPath配置的连续性,若一个数据源节点的XPath设置不对,就像它钉错了XML节点或者干脆钉在空处。则它本身和所有的子孙节点都都会绑定落空的。在实际应用中,由于XML文档不是专门为报表而产生的,因此报表工具还可能要离开XML文档来获取更多的报表数据,此时可能需要从XML文档跳到其他XML文档,或者返回数据库继续执行SQL查询。这就非常考验报表数据源模型的灵活性了。大家都知道RSS文档是一种XML文档,在这里使用博客园的RSS文档为例子说明从XML读取报表数据的过程。首先考察一下RSS文档的结构,博客园首页的RSS文档URL为http//www.cnblogs.com/rss.aspx,根节点为rss,然后有个channel子节点,下面包含了RSS文档的基本信息,然后有若干个item节点,列出了所有文章的基本信息。item节点下面是文章的基本信息,其中wfwcommentRss子节点的内容是针对该文章回帖信息RSS文档的URL。可以根据这个URL加载的回帖信息RSS文档,根据RSS文档结构可以定义出如下的报表数据源和RSS文档的映射关系。源码网整理www.codepub.com下载源码就到源码网,www.codepub.com下载源码就到源码网,www.codepub.com这里的RSSXML文档有三层结构,而且需要动态加载XML文档进行更深入的处理,因此传统的两层结构是肯定不够的,必须采用多层次的报表数据源结构。其过程是相当复杂的,步骤为1.加载http//www.cnblogs.com/rss.aspx处的XML文档,作为主XML文档,生成一个System.Xml.XmlDocument对象,并以该XML文档对象作为处理的出发点。2.使用XPathrss遍历所有符合该路径的XML节点,很显然只处理了一个节点,此时当前位置就移动到rss节点。3.从当前节点处使用XPathchannel/title获得网站标题,使用channel/link获得网站地址,channel/description获得网站说明,channel/pubDate获得文档发布时间。4.从当前节点处使用channel遍历所有符合该路径的XML节点,很显然只处理了一个节点,此时当前位置就移动到了channel节点。5.变量当前节点下的所有的item子节点,并依次设置为当前节点。6.从当前节点处使用title获得文章标题,使用link获得文章地址,使用author获得作者,pubDate获得发布时间,description获得文章内容,slashcomment获得回复数,wfwcommentRss获得回复RSSXML文档的URL。7.当处理wfwcommentRss节点时,程序根据某个特定的设置加载该节点数据指向的XML文档,也就是加载针对当前文章的回复RSSXML文档。并遍历刚刚加载的XML文档的所有符合rss/channel/item的节点,并依次设置为当前节点。8.从当前节点处,使用author获得回复作者,使用pubDate获得回复时间,使用description获得回复内容。9.由于RSSXML文档中的description节点处保存的时HTML代码,因此还需要解析HTML代码并提取其中的纯文本内容。从上面的步骤可以看出,数据源结构中的每一个节点都钉到了XML文档中的某个节点,而且在回复列表这个节点中,程序执行了XML文档的跳转,从主XML文档跳到回复RSSXML文档,而且是处理树状结构的,因此是递归操作,很多状态信息都由系统调用堆栈自动保存,无需程序自己保存了。如果报表程序能直接连接到博客园数据库的话,还可以从文章作者这个节点执行XML文档到数据库的跳转,直接查询数据库,获得文章作者的一些注册信息。实事上,这个数据源树状结构中每一个节点都可以发生XML到XML,XML到数据库,数据库到XML的三种跳转,这大大扩展了获取报表数据的灵活性。如果一个信息系统是纯XML应用的话,则报表工具就可以在众多的XML文档中跳跃着采集数据而不需要查询数据库,就像少林寺的武僧在梅花桩上打架而不用碰地,因此也就不用管下面是JAVA土壤的还是.NET土壤。此时所有的数据库操作,业务逻辑等等都运行在后台,而报表工具无需关心,只要系统底层安全可靠,则报表模块也就安全可靠,系统底层无论如何修改,只要XML文档格式不变则报表模块就不需要修改。对于非常复杂的报表数
编号:201311202038237814    大小:1.02MB    格式:DOC    上传时间:2013-11-20
  【编辑】
6
关 键 词:
教育专区 毕业设计 精品文档 XML报表?
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

当前资源信息

4.0
 
(2人评价)
浏览:18次
zhuanyunshi上传于2013-11-20

官方联系方式

客服手机:13961746681   
2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   

相关资源

相关资源

相关搜索

教育专区   毕业设计   精品文档   XML报表?  
关于我们 - 网站声明 - 网站地图 - 友情链接 - 网站客服客服 - 联系我们
copyright@ 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5