时间: 2021-07-31 作者:daque
前方仍旧提到,经过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相贯串是这种题目的很好的处置计划,你不妨充溢运用ie第5中学的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,从暂时的观点看,它们是两种各别的本领。