如何运行 XSLT 文件?

Posted

技术标签:

【中文标题】如何运行 XSLT 文件?【英文标题】:How do I run an XSLT file? 【发布时间】:2010-12-08 02:04:01 【问题描述】:

好吧,这似乎是一个愚蠢的问题,但我无法弄清楚。我正在编写一个 XSLT 文件来将 XML 文档转换为 Xhtml 文档。我已经使用 Visual Studio 和XML Notepad 2007 来预览我的 XSLT 文件的结果,但现在我想实际写出一个真正的 XHTML 文件,以便我可以看到它在其他浏览器中的外观。

Visual Studio 或 XML NotePad 都没有明显的方法来保存预览。我是不是错过了什么。很明显,文件正在创建,因为正在预览某些内容,但我需要知道该文件是在哪里创建的,或者更好的是选择它的位置。

【问题讨论】:

【参考方案1】:

你有两个选择:

    让浏览器来做。通过引用 XSLT 的 XML 和浏览器(IE 6 或更低版本可能有问题)会将其呈现为 (X)HTML:

    <?xml-stylesheet type="text/xsl" href="http://www.example.com/my-xslt.xsl" ?>

    在服务器端进行。大多数语言都有接受 XSLT 和 XML 数据,然后输出 (X)HTML 的方法。以下是一些选项:

    MSXML Saxon Xalan

【讨论】:

@Thufir 我想我是用 Visio 做到的 请注意,如果您的 XSLT 包含 C# 代码 sn-ps,则选项 1 可能不适用。【参考方案2】:

在 Visual Studio 中,将 XML 文件添加到项目中。打开 XML 文件。当文件打开并且其窗口处于活动状态时,您应该会在“属性”窗口中看到可以指定输出文件名和样式表。此外,您应该看到菜单栏现在包含一个“XML”项。

如果您从“XML”菜单中选择“显示 XSLT 输出”,VS 会将指定的转换应用到 XML 文件,将其输出写入您指定的文件,然后打开该文件。如果文件具有.xml 扩展名,它将在文本编辑器窗口中打开它;如果它有 .htm 扩展名,它会在浏览器窗口中打开它。

它有点笨拙(在我看来,一个出现和消失而不是被启用/禁用的菜单有点奇怪),但它工作得很好,而且它在你已经在使用的工具中。

【讨论】:

嗯,我看到菜单点“显示 XSLT 输出”。运行 VS2012。我错过了什么吗? 在 Visual Studio 2019 中,您可以按照此答案中的步骤操作,但在 XML 菜单中选择“Start XSLT without Debugging”选项。【参考方案3】:

如果您不介意使用命令行并且 XSLT 1.0 就是您想要的:msxsl.exe

【讨论】:

对于 windows,我宁愿推荐 NXSLT 3.0 for 1.0,当然还有 Saxon for 2.0。 NXSLT 更好的原因是什么? (只是感兴趣。) +1 是我当时最终使用的解决方案,但罗伯茨的解决方案会更好。 请注意,msxsl.exe 的链接已失效...(反正它已经有 6 年历史了)microsoft.com/downloads/… @Nasri 感谢您的提醒,我已经更新了答案。【参考方案4】:

对于您不想经历安装痛苦的一次性任务,您可以使用https://www.freeformatter.com/xsl-transformer.html。我声明我没有经常使用这个网站。

【讨论】:

【参考方案5】:

有很多第三方软件。其中之一是“氧气 XML 编辑器”。 在这个软件中,简单地说:

    打开你的 .xml 打开你的 .xslt 单击工具栏中的“运行”查看结果(输出将在右侧面板中)。 如果要保存结果,在右侧面板中右击结果并选择“保存...” 如果您遇到问题,可能需要在工具栏中进行更改处理:“Xalan,Saxon,Saxon-HE,saxon-PE,...”

【讨论】:

它相当昂贵(“99 美元起”),所以可能有更好的答案可以帮助更多人。 @dakab 你是对的!但这是答案之一,也许可以帮助某人! C#领域有一些不错的文章,如:linkarticle

以上是关于如何运行 XSLT 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用相对路径在 XSLT 中引用 CSS

如何让我的 XSLT 脚本深入了解 2 个文档并将数据编译成一个 HTML 文件?

如何使用 XSLT 测试图像文件是不是存在?

XSLT 2 (Saxon):如何将多个文件读入内存

如何从给定的 XSLT 文件中获取版本号。

XSLT:如何删除同义名称空间