对于 .NET 应用程序中执行 XSLT 转换 INFO: 路线图

来源:互联网 发布:asp.net 抓取网页数据 编辑:程序博客网 时间:2024/05/01 07:59
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。
点击这里察看该文章的英文版: 313997 (http://support.microsoft.com/kb/313997/en-us/)
文章编号 : 313997 最后修改 : 2005年8月12日 修订 : 4.1
本页
概要
概述
在 .NET 应用程序来执行 XSLT 转换编写代码
System.Xml.Xsl 命名空间
高级 XSLT 功能
pipelining XSLT 转换
参数化 XSLT 转换
内联脚本块
XSLT 扩展对象
有关使用 .NET 框架类来执行 XSLT 转换一般原则
XSLT 转换 .NETFramework 中的性能
疑难解答
参考

概要

本文提供指南以引入 .NET 框架命名空间和类, 可用于在 .NET 应用程序编程执行可扩展样式表语言转换 (XSLT) 转换。 指南文章提供指向有用信息, 包括联机文档、 Microsoft 知识库文章和 Microsoft 白皮书, 有助于您了解 Microsoft 产品或技术。 本文是没有一个 XSLT 教程。 本文假定您已熟悉 World Wide Web Consortium (W3C) XSLT standard (http://www.w3.org/TR/xslt) 并且有使用编写 XSLT 样式表来转换 XML 数据体验。

回到顶端

概述

XSLT 是 WWW 联合会 (W3C) 标准用于转换 XML 数据。 XSLT 通常用于编写样式表来转换 XML 数据与其他格式如 HTML, 固定长度文本、 逗号分隔文本或不同 XML 格式。 从开发角度, XSLT 是具有丰富、 基于 XML 语法实现元素对应于编程构造和元素以满足常见转换要求编程语言。 XSLT 样式表经常使用 XML 路径语言 (XPath) 查询来定位节点源 XML 文档中并可应用 XSLT 模板来转换这些节点。 XSLT 样式表中 XPath 查询的效率经常影响并影响性能的转换使用它。 从高级独立点, XSLT 处理器是指定样式应用于指定源 XML 文档执行 XSLT 转换和以生成必需输出软件组件。 通常与 XSLT 转换生成最终输出结果文档, 以指定目标格式显示原始 XML 数据。

回到顶端

在 .NET 应用程序来执行 XSLT 转换编写代码

下列快速入门教程和 Microsoft 知识库文章演示如何 .NET 应用程序要对要执行基本转换 XML 文档应用 XSLT 样式表中编写代码:
如何 I . 我 ? 一个 XSL 转换应用到 XML ? http://samples.gotdotnet.com/quickstart/howto/doc/Xml/TransformXml.aspx (http://samples.gotdotnet.com/quickstart/howto/doc/Xml/TransformXml.aspx)
307322 (http://support.microsoft.com/kb/307322/EN-US/) HOWTO: 通过使用 VisualC # .NET 向 XML 文档应用 XSL 转换
300929 (http://support.microsoft.com/kb/300929/EN-US/) HOWTO: 通过使用 VisualBasic.NET 从 XML 文档应用一个 XSL 转换到 XML 文档

回到顶端

System.Xml.Xsl 命名空间

System.Xml.Xsl 命名空间中 XslTransform 类实现 .NET 框架 XSLT 处理器。 此类的对象实例创建和使用以在 .NET 应用程序执行 XSLT 转换。 是 .NETFramework 中 XSLT 处理器实现都符合版本 1.0 W3C XSLT Recommendation (http://www.w3.org/TR/xslt).System.Xml.Xsl 命名空间还实现下列类来支持 XSLT 异常处理和高级选项与执行 XSLT 转换和 XPath 查询相关: • XsltArgumentList 。 可用于此类的对象实例提供扩展对象实例和 XSLT 参数, XSLT 样式表定义和引用值。 • XsltCompileException 。 此类正在编译 XSLT 样式表时发生错误时生成 .NETFramework 异常。 XslTransform 对象的 Load 方法执行时编译 XSLT 样式表。 • XsltException 。 当您正在执行 XSLT 转换时发生运行时错误该类生成 .NETFramework 异常。 • XsltContext IXsltContextFunction IXsltContextVariable 。 这些高级组件用于何时有需要实现并引用用户定义函数和变量通过 XPathNavigator 类和文档对象模型 (DOM) 类, .NET 应用程序中执行 XPath 查询中实现自定义 XPath 查询执行上下文。来更轻松地实现用户定义函数和变量, XSLT 样式表中包含 XPath 查询表达式中, 可使用内联脚本块、 扩展对象, 和 XSLT 变量或关于如何使用这些组件, 请单击下面的文章编号, parameters.For 附加信息来查看 Microsoft 知识库文章:
324899 (http://support.microsoft.com/kb/324899/EN-US/) HOWTO: 实现和 VisualBasic.NET 中执行 XPath 查询时使用自定义扩展函数

回到顶端

高级 XSLT 功能

本节介绍几个高级 XSLT 功能。

pipelining XSLT 转换

pipelining 指向通过逐步应用两个或多个 XSLT 样式表转换源 XML 文档的过程。 作为输入到下一阶段提供每个中间阶段生成输出一直通过到最终阶段, 哪些然后生成相应输出。 您必须保持与中间阶段进行其他处理不直接绑定到转换过程, 生成输出时此方法很有用。 用于有关此主题的其他信息和代码示例说明其用法, 请单击文章编号以查看 Microsoft 知识库中相应:
320847 (http://support.microsoft.com/kb/320847/EN-US/) HOWTO: 管道 XSLT 转换在 .NET 应用程序

参数化 XSLT 转换

它是常见 XSLT 做法来定义和以样式表中使用参数。 参数化 XSLT 样式表用于 <xsl:param> 元素定义 XPath 查询表达式来选择性地定位和转换 XML 数据源中节点中引用参数。 定义参数值可以硬编码样式表中或在运行时提供。 后者做法是动态提供输入参数值来控制转换过程是最常见用法的此功能。 在 .NET 应用程序, XsltArgumentList 对象用于提供同时执行 XSLT 参数值。 AddParam 方法是用来添加代表样式表, 其值 XsltArgumentList 对象中定义一个参数名称 - 值对。 执行 转换 的 XslTransform 对象用来执行转换方法时 XsltArgumentList 对象然后提供作为参数。 GetParam 和 RemoveParam 方法用来访问和可删除单个参数添加到 XsltArgumentList 对象。 有关如何在 .NET 应用程序, 执行参数化 XSLT 转换请单击文章编号以查看 Microsoft 知识库中相应:
321704 (http://support.microsoft.com/kb/321704/EN-US/) HOWTO: 在 .NET 应用程序执行参数化 XSL 转换

内联脚本块

内联脚本函数是之一选项, 可用于实现用户定义函数和子过程 XSLT 样式表中使用 XPath 查询表达式中引用。 能够在 XSLT 样式表包含嵌入脚本块是 W3C 扩展。 .NETFramework, 中 XSLT 样式表中 <msxsl:script> 块中编码自定义内联函数和子例程。 可以使用 Microsoft Visual Studio .NET 编程语言如 MicrosoftVisualBasic.NET 或 MicrosoftVisualC # .NET 来实现这些例程。 的缺点与使用内联脚本块相关联之一是非便携式它们进行 XSLT 样式表。 技术、 标记和语义用于实现内联脚本块是供应商特定扩展, 不执行标准化 W3C XSLT 规范。 您只能使用 XSLT 样式表定义并成功使用内联脚本块可解释相关语义并与技术来执行代码具有集成通过 XSLT 处理器执行转换中。 在 .NETFramework, 托管程序集生成和隐性加载到内联 <msxsl:script> 中执行包含代码脚本块。 目前已知问题阻止从转换过程完成时被正确卸载这些程序集 .NET 框架中。 如果影响样式表是反复加载来执行 XSLT 转换此异常可能导致到内存中增加。 只有当主机进程是回收释放未发布的内存。 有关 .NETFramework, 中问题请单击文章编号以查看 Microsoft 知识库中相应:
316775 (http://support.microsoft.com/kb/316775/EN-US/) PRB: 无法卸载程序集, 您创建并通过 XSLT 中使用脚本加载
要变通解决此问题在 Microsoft ASP.NET 应用程序, 可影响样式表加载期间应用程序的寿命只一次, 缓存影响样式表 (在 ASP.NET 缓存), 并重用用于转换缓存版本之后, 然后。 在 WindowsForms 和控制台应用程序, 可使用全局 XslTransform 对象实例和应用程序启动时加载影响样式表以执行以后转换。 这些变通不必是无状态环境 (例如, 和中间层企业服务组件) 中执行 XSLT 转换时并不适用。 Microsoft 建议您使用 XSLT 扩展对象来实现自定义 XPath 扩展函数来变通解决此问题。

XSLT 扩展对象

Microsoft 建议您使用扩展对象来实现自定义子例程和函数所引用的 XSLT 样式表中使用 XPath 查询表达式中。 创建 .NET 框架 DLL 来实现和以 .NET 应用程序中执行转换时使用扩展对象。 自定义子例程和函数, DLL 中实现并且 DLL 组件的一个对象实例通过 XsltArgumentList 对象执行 转换 的 XslTransform 对象方法时提供作为运行时库参数。 AddExtensionObject 方法的 XsltArgumentList 类是用来为 XsltArgumentList 对象添加扩展对象实例。 使用扩展对象的 获取 和 删除 方法来访问和可删除扩展对象实例添加到 XsltArgumentList 对象。 W3C XSLT 规范介绍概念和使用扩展元素和函数没有任何注意或引用到基本技术, 必须用于实现它们。 必须定义并使用样式表中基于标准的 XML 命名空间前缀来引用函数和子例程扩展对象中实施。 供应商可选择技术是适合于其平台来解决实现方面的扩展对象。 请用于概念和 .NET 框架中的 XSLT 扩展对象使用其他信息和步骤来创建端到端应用程序演示如何使用扩展对象在 .NET 应用程序, 执行 XSLT 转换时单击, 查看 Microsoft 知识库文章文章文章编号:
321702 (http://support.microsoft.com/kb/321702/EN-US/) HOWTO: VisualBasic.NET 应用程序中执行 XSL 转换时使用扩展对象

回到顶端

有关使用 .NET 框架类来执行 XSLT 转换一般原则

• XPathDocument 类高度优化用于 XSLT 和 XPath 处理。 为了优化性能, 总是使用 XPathDocument 对象来提供您正在执行 XSLT 转换时源 XML。 • 缓存并重用 XslTransform 对象, 是用来加载经常用于执行以后转换 XSLT 样式表。 • 不自动 XSLT 处理器不缓存 XSLT 转换中使用扩展对象实例。 缓存并重用 XsltArgumentList 对象, 是用来执行以后转换时提供扩展对象实例对经常使用 XSLT 样式表。 这是对 .NET 框架中 XSLT 转换中使用缓存扩展对象方法。 • XSLT 样式表实现内联脚本块应只加载一次并缓存。 您应该重用缓存 XslTransform 对象后面转换。 使用此做法来克服 MicrosoftKnowledgeBase 文章 Q316775 中必须使用内联脚本函数样式表中时是描述内存管理问题。 • Microsoft 建议您要在 XSLT 样式表中使用 XPath 查询表达式中实现自定义函数所引用使用扩展对象。 仅当有来实现和来引用自定义扩展函数通过 XPathNavigator 和 DOM 类, .NET 应用程序中执行 XPath 查询表达式中实现自定义 XsltContext IXsltContextVariable IXsltContextFunction 和类。 • 实现异常处理代码以处理 XsltCompileException 、 XsltException 和 XmlException .NET 框架异常类编写代码来执行 XSLT 转换时。 这些异常类提供信息尝试执行 XSLT 转换时, 发生任何特定 XSLT - XML 特定问题。 此外, Microsoft 建议您实施通用 System.Exception 类, 基于、 其他 XSLT 非 - 相关功能执行 XSLT 转换代码块中实现并实现代码以处理其他特定 .NETFramework 异常。

回到顶端

XSLT 转换 .NETFramework 中的性能

有关原因和解决方案对于已知性能问题, .NET 应用程序中执行 XSLT 转换时请单击文章编号, 以查看 Microsoft 知识库中相应:
325689 (http://support.microsoft.com/kb/325689/EN-US/) INFO: .NET 框架中的 XSLT 转换性能

回到顶端

疑难解答

如果您遇到问题或者有疑问, 可引用向其中您可以与同行共享您体验 MSDN 新闻组。 还可以使用 Microsoft 知识库文章, 您可以搜索有关特定问题的文章或与 Microsoft 产品支持服务
MSDN 新闻组 http://msdn.microsoft.com/newsgroups/ (http://msdn.microsoft.com/newsgroups/)搜索知识库 http://support.microsoft.com/search (http://support.microsoft.com/search)Microsoft 产品支持服务 http://support.microsoft.com (http://support.microsoft.com/)

回到顶端

参考

请其他有关 % 1, 单击 % 2 下面文章编号以查看 Microsoft 知识库文章 % 2:
313651 (http://support.microsoft.com/kb/313651/EN-US/) 对于 .NETFramework 中 XML INFO: 路线图

回到顶端

原创粉丝点击