科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件XSLT 2.0应用实践

XSLT 2.0应用实践

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

作者:builder.com.cn 2007年4月30日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

列表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 2007XSLT2.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——结果

XSLT 2.0应用实践

下一步如何开展

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

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

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章