平面文档索引解决方案(基于XML与XSLT)
2009-03-19 14:25
232 查看
在企业信息系统日常使用过程中经常需要处理一些平面文件,有些可能是通过网站平台传到统一的文档服务器进行管理,有些可能会有专门的文档管理应用系统。在这些系统的使用过程中经常需要添加一些文档的附属信息,比如上传上员,上传时间,文件的用途等。
虽然专业的文档系统可以使文档的管理变得非常简单高效,但是还是有一部分人需要将平时使用的平面文档导出到本地文件夹进行查看和管理。但是如果单单只将这些文件导出的话会丢失一文件的附属信息给查阅带来麻烦。如果专门开发应用程序去文档系统读取相关信息的话又过于麻烦,而且对于使用的环境要求也比较高,不能进行脱机浏览和查阅。
基于以上的这些问题,从需求角度分析,客户是希望能够通过有一个良好使用界面查阅到文档的相关信息。但最好不需要安装任何软件或者对运行环境有什么特别的要求,同时需要能够对内容进行搜索和定位到具体的文件。
接下来我们来讲讲解决方案。大家都知道XML是专门用于描述格式化数据的语言,我们可以使用将文档的附属信息通过定义好的格式进行存储。文档系统在导出的时候只需要按照定义好的XML格式进行导出就可以了。(不同的系统可能需要做开发)。以下是示例的XML.
<Documents BeginTime="2009.1" EndTime="2009.12">
<Document Level="普通" >
<Title>Gary的项目文档</Title>
<Author Name="Gary Zhang" Email=cbcye@live.com SendTime="2009-3-1 10:10:00"/>
<File Uri="Documents\01\CBCYE[2009].zip" Name="CBCYE[2009].zip" Size="1111" />
<Description>来自:www.cbcye.com | cbcye.cnblogs.com | www.quicklearn.cn </Description>
</Document>
</Documents>
XML有了之后就是显示的问题了,当然你可以自己开发WinForm之类的程序来进行展现。但是还有更简单(可能对于有些人可能会觉得更复杂)的方法就是直接在浏览器上进行显示。基于Javascript对XML操作的支持可以提供良好的使用体验。如果数据文件只有一个的话可以使用HTML内嵌Javascript的方式去访问XML.当然有时可能会有多个数据XML文件,这样的话就可以使用XSLT(XML转换语言)了。只要在XML文档只引用该类型的文件就可以在显示时将XML转换为HTML再显示。
<?xml-stylesheet type='text/xsl' href='Bin\xmlStyle.xsl'?>
以下的演示截图参考MSNShell对于聊天记录的管理与展现,将文档相关数据以XML格式进行存储,采用XSLT将XML转换为HTML进行显示,并且应用了XML模糊查询和分页技术,增加用户的体验效果。
![](http://images.cnblogs.com/cnblogs_com/cbcye/WindowsLiveWriter/XMLXSLT_BE5B/image_thumb_2.png)
综上所述本解决方案可以满足用户对于文档查询的需求,另外本解决方案还有以下优点:
基于XML格式的数据存储提供了优秀的扩展性。
数据存储与展现分离降低了开发复杂度。
使用基于javascript和标准的XML,XSLT技术降低了后期维护成本。
跨平台的解决方案,只要有浏览器即可运行。
良好的用户体验效果。
OK, 本解决方案已经讲完了。应该还不错吧,由于该演示源码不方便提供,在XSLT开发请参考MSNShell的消息转换代码,对于XML的模糊查询可参考:《使用Xpath对XML进行模糊查询》。另外如果有更好的解决方案或开发过程中遇到问题的话,欢迎一起探讨。
虽然专业的文档系统可以使文档的管理变得非常简单高效,但是还是有一部分人需要将平时使用的平面文档导出到本地文件夹进行查看和管理。但是如果单单只将这些文件导出的话会丢失一文件的附属信息给查阅带来麻烦。如果专门开发应用程序去文档系统读取相关信息的话又过于麻烦,而且对于使用的环境要求也比较高,不能进行脱机浏览和查阅。
基于以上的这些问题,从需求角度分析,客户是希望能够通过有一个良好使用界面查阅到文档的相关信息。但最好不需要安装任何软件或者对运行环境有什么特别的要求,同时需要能够对内容进行搜索和定位到具体的文件。
接下来我们来讲讲解决方案。大家都知道XML是专门用于描述格式化数据的语言,我们可以使用将文档的附属信息通过定义好的格式进行存储。文档系统在导出的时候只需要按照定义好的XML格式进行导出就可以了。(不同的系统可能需要做开发)。以下是示例的XML.
<Documents BeginTime="2009.1" EndTime="2009.12">
<Document Level="普通" >
<Title>Gary的项目文档</Title>
<Author Name="Gary Zhang" Email=cbcye@live.com SendTime="2009-3-1 10:10:00"/>
<File Uri="Documents\01\CBCYE[2009].zip" Name="CBCYE[2009].zip" Size="1111" />
<Description>来自:www.cbcye.com | cbcye.cnblogs.com | www.quicklearn.cn </Description>
</Document>
</Documents>
XML有了之后就是显示的问题了,当然你可以自己开发WinForm之类的程序来进行展现。但是还有更简单(可能对于有些人可能会觉得更复杂)的方法就是直接在浏览器上进行显示。基于Javascript对XML操作的支持可以提供良好的使用体验。如果数据文件只有一个的话可以使用HTML内嵌Javascript的方式去访问XML.当然有时可能会有多个数据XML文件,这样的话就可以使用XSLT(XML转换语言)了。只要在XML文档只引用该类型的文件就可以在显示时将XML转换为HTML再显示。
<?xml-stylesheet type='text/xsl' href='Bin\xmlStyle.xsl'?>
以下的演示截图参考MSNShell对于聊天记录的管理与展现,将文档相关数据以XML格式进行存储,采用XSLT将XML转换为HTML进行显示,并且应用了XML模糊查询和分页技术,增加用户的体验效果。
![](http://images.cnblogs.com/cnblogs_com/cbcye/WindowsLiveWriter/XMLXSLT_BE5B/image_thumb_2.png)
综上所述本解决方案可以满足用户对于文档查询的需求,另外本解决方案还有以下优点:
基于XML格式的数据存储提供了优秀的扩展性。
数据存储与展现分离降低了开发复杂度。
使用基于javascript和标准的XML,XSLT技术降低了后期维护成本。
跨平台的解决方案,只要有浏览器即可运行。
良好的用户体验效果。
OK, 本解决方案已经讲完了。应该还不错吧,由于该演示源码不方便提供,在XSLT开发请参考MSNShell的消息转换代码,对于XML的模糊查询可参考:《使用Xpath对XML进行模糊查询》。另外如果有更好的解决方案或开发过程中遇到问题的话,欢迎一起探讨。
相关文章推荐
- C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例
- 基于PHP与XML的PDF文档生成技术
- 处理 OpenOffice.org 基于 XML 的文档格式
- 解析在.net中使用XSLT转换xml文档的示例详解
- lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3
- lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3
- XML文档基本认识和基于JAVA对简单解析
- Java Lucene (4):索引XML文档
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)
- PHP基于DOM创建xml文档的方法示例
- 基于Lucene/XML的站内全文检索解决方案
- 如何在Silverlight中使用XSLT格式化并输出XML文档
- XLoadTree 基于AJAX + XML动态加载的JS树组件的文档翻译
- 基于TinyXml编写的Xml文档操作类
- 基于SAX的XML文档解析器分析
- Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)-----(转)
- C#中使用XSLT文件将XML文档转换为HTML
- 使用 XSLT 和 Java 扩展验证 XML 文档中的复杂约束
- lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC).doc