0

0

基于XML的桌面应用的图文代码详细介绍

黄舟

黄舟

发布时间:2017-03-06 16:48:03

|

1991人浏览过

|

来源于php中文网

原创

  前面已经提到,通过xsl,我们可以把相同的数据以不同的数据形式提交给终端客户,一个xsl文件描述了数据的显示方式,你可以把许多xsl和同一个xml文档相连来提供不同的基于html的表示,这样事实上,我们就可以建立基于xml的桌面应用程序。基于windows体系结构的一个图形表示如下所示:

1219.gif

采用这种方法主要有两个优点,首先,你可以以平台和语言独立的方式来操作数据,其次,不需要编程你就可以实现对同样数据的不同的视图表示。

  实际上,你需要一个工具能够把原始的数据转化为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的文档头部增加如下的代码:

X-Node企业快速建站1.0.6.0801
X-Node企业快速建站1.0.6.0801

特色介绍: 1、ASP+XML+XSLT开发,代码、界面、样式全分离,可快速开发 2、支持语言包,支持多模板,ASP文件中无任何HTML or 中文 3、无限级分类,无限级菜单,自由排序 4、自定义版头(用于不规则页面) 5、自动查找无用的上传文件与空目录,并有回收站,可删除、还原、永久删除 6、增强的Cache管理,可单独管理单个Cache 7、以内存和XML做为Cache,兼顾性能与消耗 8、

下载
  <?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)!

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
XML教程
XML教程

共142课时 | 5.3万人学习

XQuery 教程
XQuery 教程

共12课时 | 3.4万人学习

XLink  教程
XLink 教程

共7课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号