采纳这类要领主要有两个长处,起首,你可以以平台和言语自力的体式格局来操纵数据,其次,不须要编程你就可以完成对一样数据的差别的视图示意。
实际上,你须要一个东西可以把原始的数据转化为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的桌面运用的图文代码细致引见的内容,更多相关内容请关注ki4网(www.ki4.cn)!