XSLT 2.0应用实践 - XML/XSLT - 网页制作 - 站长资讯 - 一摘网站分类目录-免费收录各类优秀网站的中文网站目录
当前位置:一摘网站分类目录 > 首页 > 资讯首页 > 网页制作 > XML/XSLT > XSLT 2.0应用实践

XSLT 2.0应用实践

发表时间:2011-07-06内容来源:中国目录网整理  [我要投稿]  [免费提交网站]  转发微博:

  

现在, XSLT 2.0 已经不再只是一个理论上的标准了,有很多免费软件都可以帮助您发挥出 XSLT 2.0 的力量,借助这些软件您可以在软件开发中应用 XSLT 2.0 。这篇文章将向您介绍如何使用这些软件来应用 XSLT2.0 。

几周以前,我收到一位朋友的来信,提到了几年前我开发的软件,在这个软件中我使用了 XSL 样式表,我以前曾经写过文章讲解样式表的使用方法。现在,我的这位朋友将要利用 XSLT2.0 的新特色对样式表进行升级,这引起了我的兴趣。

令人惊讶的是,我以前并没有考虑过样式表本身,而是在考虑如何应用样式表。这是因为原来的软件是用 C# 写的,现在很多开发者都在等待微软发布最新版本的 MSXML 来支持最新的标准,因为纸面上的标准是没有任何价值的,除非有实际的工作实例作为参考。

如果您曾经为美国专利局工作过,那么按照这种思路进行思考:发布一种没有人知道怎么进行构建的产品专利有什么意义呢?实际上,除非您向风险投资 推销雾件或 标记技术领域的专利,空有想法只能做到这种程度了,那么下面让我们来看看如何在实际工作中使用 XSLT2.0 。

软件资源

现在有很多现成的工具可以选择,首先,您需要微软的 Visual C# Express 来编写 .NET 代码,但是微软并没有提供 XSLT 的处理器,因此我们需要从 Altova 获取 XSLT 的处理工具。 Altova 是 XMLSpy 以及很多 XML 相关产品的软件生产商。

且慢,先不用拿出您的支票本,我们所使用的来自 Altova 的软件是免费的—— AltovaXML 2007 ,该产品包含了 XML 检验工具、 XSLT1.0 处理器、 XSLT2.0 处理器和 XQuery 处理器。我们最感兴趣的部分是 XSLT2.0 的处理功能,而微软的 MSXML 中恰好没有提供 XSLT2.0 的支持。

关于微软 Visual C# Express 的安装可以参考以前的技术文章,这里就不再重复了,我们来介绍介绍 AltovaXML 2007 的安装,其实该过程也很简单,点击了安装文件并按照提示前进就可以了,图片 A 和 B 展示了您在安装过程中会看到的安装屏幕截图。

图片 A ——安装过程

图片 B ——安装过程的其他部分

在安装了 AltovaXML 2007 之后,使用 XSLT2.0 起来也很简单,只需要添加一个引用即可,如图片 C 所示。

图片 C ——添加一个引用

现在预备知识已经讲解完了,我们现在来创建一个 C# 程序,列表 A 是 XML 文档,列表 B 是 XSLT 文档,列表 C 是我们使用的 C# 程序代码。

列表 A —— XML 文档

<?xml version="1.0" encoding="UTF-8"?>

< world >

<country name="Canada" continent="North America">

< city> Toronto</city>

< city> Vancouver</city>

</country>

<country name="Jamaica" continent="North America">

< city> Kingston</city>

< city> Ocho Rios</city>

</country>

<country name="United States" continent="North America">

< city> Allentown</city>

< city> Mobile</city>

</country>

<country name="United Kingdom" continent="Europe">

< city> London</city>

< city> Dundee</city>

</country>

<country name="France" continent="Europe">

< city> Paris</city>

< city> Nice</city>

</country>

<country name="Japan" continent="Asia">

< city> Tokyo</city>

< city> Osaka</city>

</country>

</world>

列表 B —— XSLT2.0 样式表

<?xml version="1.0" encoding="UTF-8"?>

< xsl:stylesheet version="2.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:fo="

http://www.w3.org/1999/XSL/Format"xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:fn="

http://www.w3.org/2005/xpath-functions"xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">

< xsl :template match="/">

< xsl :element name="world">

< xsl :for -each-group select="//country" group-by="@continent">

< xsl :sort select="@continent" data-type="text" order="ascending"/>

< xsl :variable name="continent" select="@continent"/>

< xsl :apply -templates select="//country[@continent = $continent]" mode="group">

< xsl :sort select="@name" data-type="text" order="ascending"/>

</ xsl :apply -templates>

</ xsl :for -each-group>

</ xsl :element >

</ xsl :template >

< xsl :template match="*" mode="group">

< xsl :copy -of select="."/>

</ xsl :template >

</ xsl :stylesheet >

列表 C —— C# 程序

using System;

using System.Collections.Generic ;

using System.ComponentModel ;

using System.Data ;

using System.Drawing ;

using System.Text ;

using System.Windows.Forms ;

namespace WindowsApplication1

{

publicpartialclassForm1 : Form

{

public Form1()

{

InitializeComponent ( );

}

privatevoid Form1_Load(object sender, EventArgs e)

{

AltovaXMLLib.ApplicationClass objAltova = new AltovaXMLLib.ApplicationClass ( );

textBox1.Text = Application.StartupPath + " .. ..world2.xml";

textBox2.Text = Application.StartupPath + " .. ..grouping2.xsl";

objAltova.XSLT2.InputXMLFileName = textBox1.Text;

objAltova.XSLT2.XSLFileName = textBox2.Text;

textBox3.Text = objAltova.XSLT2.ExecuteAndGetResultAsString( );

}

}

}

示例

在以上的代码中,我突出强调了这篇文章的主题——使用 AltovaXML 2007 的 XSLT2.0 功能。表 A 展示了应用到 XSLT2.0 的方法,表 B 展示了适用的属性。

A ——方法

方法

说明

Execute

对当前 XML 文档应用 XSL 样式表,并将结果写入程序提供的文件。

AddExternalParameter

在 XSL 样式表上添加一个参数值。

ClearExternalParameterList

清除所有 XSL 样式表参数。

ExecuteAndGetResultAsString

对当前 XML 文档应用 XSL 样式表,并返回结果字符串。

表 B ——属性

方法

说明

InputXMLFileName

设定需要转换的 XML 文件名。

InputXMLFromText

从字符串获取 需要转换的 XML 文件名。

LastErrorMessage

最后的错误信息字符串。

XSLFileName

设定 XSLT 样式表的文件名。

XSLFromText

从字符串获取样式表的文件名。

XSLStackSize

样式表中允许的最大递归深度,默认是是 1000 ,最小值是 100.

结果

应用以上所有的技术,我们得到的结果看上去应当和图片 D 差不多。

图片 D ——结果

下一步如何开展

这个例子已经显示出 XSLT2.0 已经具备实际应用的价值了,尽管这个例子本身平淡无奇,但是通过免费资源,我们已经可以很好地利用 XSLT2.0 的强大功能了。

但是在真正的商业环境中,您可能需要购买一些相关的参考资料, Michael Kay 的 XSLT 2.0 Programmer's Reference ( XSLT2.0 程序员参考指南)是一个不错的选择;另外,您可能还要花些钱在 XMLSpy 的完整版本上,不过放心,在真正的应用软件上, XMLSpy 所发挥出的功能是值得您进行投资的。

  • 站长资讯刊登此文只为传递信息,并不表示赞同或者反对作者观点。
  • 如果此内容给您造成了负面影响或者损失,本站不承担任何责任。
  • 如果内容涉及版权问题,请及时与我们取得联系。
114
最新推荐                    我也要出现在这里 | 更多
快速链接
最新快速审核
71读小说网是广大书友最值得收藏的网络小说阅读网,网站收录了当前最火最热的网络小
www.71du.com
大香蕉网是专业发放淘宝优惠券天猫超市优惠券的优惠券网站,每天数万种淘宝内部优惠券
www.daxiangjiao1234.com
读客吧汇聚经典原创小说,致力于打造最好最完善的免费网络小说阅读网,网站收录了当前
www.dukeba.com
凭身份证手机贷款✔极速贷款✔快速借款✔分期信用贷款✔网上手机贷款app✔身份证贷
www.maolidai.cn
百度云资源[www.ZDays.Com]:百度云资源|百度云资源搜索|百度网盘资源搜索 - ZDays.Com
zdays.com
ADS 广告位招租
一摘开放式网站目录
在线投稿提交网站关于我们帮助中心 广告赞助免责声明 隐私保护最新推荐友情连接意见反馈
Copyright © 2006-2011 一摘网络 版权所有  1zhai.com  All Rights Reserved
在线投稿,网站免费登录,新收录网站首页显示,所有排名全自动实时刷更新,网站推广的最佳选择就在一摘开放式网站目录
Powered by 一摘网络(1zhai.com)    快速审核|投放广告,请点击给我信息快速审核|投放广告
页面执行时间: 133 毫秒