【问题标题】:XSL Transformation of XML - Simple .NET example?XML 的 XSL 转换 - 简单的 .NET 示例?
【发布时间】:2011-08-21 21:31:54
【问题描述】:

我有一个基于 .NET 的应用程序,它接收传入的 XML 文件。我想使用我拥有的 XSL 样式表将 XML 文件转换为 HTML。这是我的过程...

  1. 从文件系统读取提交的 XML 文件
  2. 将 XSL 应用于 XML 进行转换
  3. 将生成的 HTML 作为 HTML 打印到屏幕

有没有人有任何示例代码来演示如何做到这一点?谢谢。

【问题讨论】:

  • 您是否看过许多涵盖此内容的教程,例如 msdn.microsoft.com/en-us/library/ms912472.aspx ?在 SO 上发布问题时,您应该首先努力自己回答问题,然后针对您尝试过的内容提出具体问题。我们都是志愿者,不会为你做你的工作。
  • 感谢您的链接。只是出于好奇,你为什么认为我在提问之前没有寻找答案?
  • @John - 虽然您认为答案很容易找到和理解,但其他人可能不会。请记住,在您和 Jim 走到今天之前,您可能会遇到一些经验丰富的人也认为简单且“易于查找和理解”的问题。
  • @web:嗯,不,我有查看 MSDN 文档并自行解决的习惯。
  • 当然,您从来不需要帮助或问别人问题。你的傲慢令人震惊,但并非完全出乎意料。

标签: xml xslt transform


【解决方案1】:

这是来自 MSDN .NET documentation 的一个非常简短的示例,它是关于使用 XslCompiledTransform 类的 Transform() 方法的.NET 的标准部分(在 System.Xml.Xsl 命名空间中实现):

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Create the FileStream.
using (FileStream fs = new FileStream(@"c:\data\output.xml", FileMode.Create))
{
   // Execute the transformation.
   xslt.Transform(new XPathDocument("books.xml"), null, fs);
}

剩下要做的是调用浏览器并将转换结果传递给它,该结果包含在流fs 中。如果效率很重要,可以选择使用内存流而不是文件流。

您应该熟悉 Transform() *方法的其他重载,然后选择最适合您的方法。

【讨论】:

    【解决方案2】:

    您实际上并没有说您使用的是哪个 XSLT 处理器。至少有三种可用:Microsoft 一种,它只支持 XSLT 1.0,以及 Saxon 和 XQSharp,它们都支持 XSLT 2.0。不幸的是,它们都有不同的 API。

    【讨论】:

      【解决方案3】:

      来自一个有点相关的帖子的一个很好的例子 - Passing null to `XslCompiledTransform.Transform` method

      【讨论】:

        猜你喜欢
        • 2011-01-08
        • 2016-02-12
        • 1970-01-01
        • 1970-01-01
        • 2014-09-21
        • 2011-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多