基于XML的桌面应用的图文代码详细介绍
前面已经提到,通过XSL,我们可以把相同的数据以不同的数据形式提交给终端客户,一个XSL文件描述了数据的显示方式,你可以把许多XSL和同一个xml文档相连来提供不同的基于HTML的表示,这样事实上,我们就可以建立基于XML的桌面应用程序。基于Windows体系结构的一个图形表示如下所示:
采用这种方法主要有两个优点,首先,你可以以平台和语言独立的方式来操作数据,其次,不需要编程你就可以实现对同样数据的不同的视图表示。
实际上,你需要一个工具能够把原始的数据转化为XML格式化的形式,然后用HTML的格式表示出来。实际上在IE5.0中,你可以通过它对XSL的支持来实现数据的不同视图。可以使用内建的XSL处理器来从XML流中产生输出。开发人员可以编写不同的XSL剧本,然后用IE内建的XSL处理器对它进行处理。另一方面,我们可以通过ADO组件的内在功能实现把记录集转化为XML格式,示例代码如下:
If Dir(XML_FILE) = "" Then rs.Save XML_FILE, adPersistXML End If 这里常量adPersistXML表示使用一个XML纲要来保存记录集的内容 我们再仔细看一下Recordset对象的Save方法,其定义如下: Save([FileName As String], [PersistFormat As PersistFormatEnum = adPersistADTG])
每一个参数都是可选的,但是当你第一次把记录集保存到磁盘上的时候,你必须指定文件的名称。如果当该方法执行的时候,存在一个有效的过滤器的话,只有通过过滤的数据才能够被保存。当调用Recordset对象的方法Close关闭Recordset对象的时候,文件也被自动关闭。当Recordset被保存到磁盘上以后,你可以采用Open方法来阅读它,具体代码如下:
rs.open "c:\myrs.xml"
然后我们分析一下关于XML数据的显示的问题,IE5对XSL的支持是基于W3C最近的草案标准建立的。这里我们讨论用VB建立一个应用,它通过ADO接口来访问数据源中的数据。得到的记录集可以以不同的格式化的形式展现。通过编写XSL文档,你可以任意的增加不同的视图。
比如,一旦你提取了一个结果集以后,你可以在VB中用DataGrid控件方便的显示数据,具体代码如下:
Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient queryString = "select * from Employees" rs.Open queryString, "NorthWind" 'NorthWind是微软的示例数据库,很容易在 'access或者是SQL SERVER中找到 rs.ActiveConnection = Nothing Set DataGrid1.DataSource = rs
在许多情况下,这个的一个视图是不够的,你需要对每个字段进行严格的控制。整个表中的记录可能既用表格又用树的形式表示,提供多个视图会让用户感到更加舒服。 XML和XSL相结合是这种问题的很好的解决方案,你可以充分利用IE5中的WebBrowser控件的功能直接进行浏览。
ADO组件本身不对它产生的XML文档生成任何的XSL文档。单这并不表示你不能自己编写一个通用的XSL文档来改变数据的显示方式。比如为了自动的把一个包含ADO记录集的XML文档以表格的形式显示的话,需要在XML的文档头部增加如下的代码:
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
这个simple.xsl文件必须放在和XML文档相同的目录下,它包含两个嵌套的循环,第一个循环枚举了元素的所有属性,这些属性的名字作为标题显示在第一行,第二个循环用来输出记录集中的所有记录。
simple.xsl文件的代码如下所表示:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns:html="http://www.w3.org/TR/REC-html40" result-ns="" language="JScript"> <xsl:template match="/"> <html> <head> <title>RowsetSchema</title> <style> .stdText { font-Family:verdana; font-Size: 9px; } </style> </head> <body> <table width="100%" border="1"> <xsl:for-each select="xml/s:Schema/s:ElementType/s:attribute"> <th class="stdText"><xsl:value-of select="@type" /></th> </xsl:for-each> <xsl:for-each select="xml/rs:data/z:row"> <tr> <xsl:for-each select="@*"> <td class="stdText" valign="top"><xsl:value-of match="@*"/></td> </xsl:for-each> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
这里需要注意的是关于列举一个给定节点的所有属性的语法,实际上我们需要得到任何<z:row>元素的所有属性,字符串@*表示所有的属性(一个属性的名字总是需要在前面加上@,为了使用这个值,<xsl:value-of>节点必须设置和它匹配的属性,用@*进行表示。
通过使用WebBrowser控件作为你浏览数据的引擎,你可以使用XML和XSL把内容从表示层中分离出去。在这种模型中,XSL的作用是作为一个标记语言(而不是编程语言)来描述如何显示XML数据,为了增加一个新的视图,只需要增加一个对应的XSL文档就可以了。事实上这种基于Web的文档/视模型可以和MFC下的文档/视模型进行类比。
最后我们需要在讲一下,XSL和CSS有什么不同呢?关键的不同是XSL是应用在整个XML文档的,而CSS只对HTML标签的显示形式产生影响。XSL是一个处理文件的标记语言,而CSS是一个属性集合用来表示标记语言中一个元素的属性。而且,XSL在从XML数据流中产生HTML输出的时候,能够使用CSS,从当前的角度看,它们是两种不同的技术。
以上就是基于XML的桌面应用的图文代码详细介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

XML文件可以用PPT打开吗?XML,即可扩展标记语言(ExtensibleMarkupLanguage),是一种被广泛应用于数据交换和数据存储的通用标记语言。与HTML相比,XML更加灵活,能够定义自己的标签和数据结构,使得数据的存储和交换更加方便和统一。而PPT,即PowerPoint,是微软公司开发的一种用于创建演示文稿的软件。它提供了图文并茂的方

使用Python实现XML数据的合并和去重XML(eXtensibleMarkupLanguage)是一种用于存储和传输数据的标记语言。在处理XML数据时,有时候我们需要将多个XML文件合并成一个,或者去除重复的数据。本文将介绍如何使用Python实现XML数据的合并和去重的方法,并给出相应的代码示例。一、XML数据合并当我们有多个XML文件,需要将其合

Python中的XML数据转换为CSV格式XML(ExtensibleMarkupLanguage)是一种可扩展标记语言,常用于数据的存储和传输。而CSV(CommaSeparatedValues)则是一种以逗号分隔的文本文件格式,常用于数据的导入和导出。在处理数据时,有时需要将XML数据转换为CSV格式以便于分析和处理。Python作为一种功能强大

使用Python实现XML数据的筛选和排序引言:XML是一种常用的数据交换格式,它以标签和属性的形式存储数据。在处理XML数据时,我们经常需要对数据进行筛选和排序。Python提供了许多有用的工具和库来处理XML数据,本文将介绍如何使用Python实现XML数据的筛选和排序。读取XML文件在开始之前,我们需要先读取XML文件。Python有许多XML处理库,

利用Golang开发功能强大的桌面应用随着互联网的不断发展,人们已经离不开各种类型的桌面应用程序。而对于开发人员来说,如何利用高效的编程语言来开发功能强大的桌面应用至关重要。本文将介绍如何利用Golang(Go语言)来开发功能强大的桌面应用,并提供一些具体的代码示例。Golang是一种由Google开发的开源编程语言,它具有简洁、高效、并发性强等特点,非常适

Python实现XML和JSON之间的转换导语:在日常的开发过程中,我们常常需要将数据在不同的格式之间进行转换。XML和JSON是常见的数据交换格式,在Python中,我们可以使用各种库来实现XML和JSON之间的相互转换。本文将介绍几种常用的方法,并附带代码示例。一、XML转JSON在Python中,我们可以使用xml.etree.ElementTree模

使用Python处理XML中的错误和异常XML是一种常用的数据格式,用于存储和表示结构化的数据。当我们使用Python处理XML时,有时可能会遇到一些错误和异常。在本篇文章中,我将介绍如何使用Python来处理XML中的错误和异常,并提供一些示例代码供参考。使用try-except语句捕获XML解析错误当我们使用Python解析XML时,有时候可能会遇到一些

Python解析XML中的特殊字符和转义序列XML(eXtensibleMarkupLanguage)是一种常用的数据交换格式,用于在不同系统之间传输和存储数据。在处理XML文件时,经常会遇到包含特殊字符和转义序列的情况,这可能会导致解析错误或者误解数据。因此,在使用Python解析XML文件时,我们需要了解如何处理这些特殊字符和转义序列。一、特殊字符和
