0

在 IntelliJ 中查看 XSLT 2 样式的 XML 文件时遇到问题。我添加了 Saxon HE 依赖项,我知道它可以工作,因为构建成功完成(它不是没有这种依赖项)

Connecting to XSLT runner on localhost/127.0.0.1:62573
Connected to XSLT runner.

Process finished with exit code 0

在 XSLT 输出中,我可以看到完全创建的 HTML,我可以将其放入 .html 文件中,并且可以正常工作。问题是当我想通过我的应用程序托管的服务器查看此 HTML 时,例如 localhost:8080/sampleFile.xml。这正是这个标签的问题

<xsl:for-each select="tokenize(@inputDomain, ',')">
...
</xsl:for-each>

当我删除这个标签时,我可以看到我想要的整个 HTML。我认为这是在这些文件上启动标签的问题,但我不知道,也找不到任何答案。

XML 文件以

<?xml version="1.0"?>
<?xml-stylesheet href="./interpreter.xsl" type="text/xsl" ?>
...

XSL 文件以

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

1 回答 1

1

问题是浏览器只支持 XSLT 1.0 版并且fn:tokenize(...)是 XSLT-2.0 功能。因此,不幸的是,如果您想在浏览器中运行样式表,您只能使用 1.0 版。

唯一的选择是使用Saxon-JS

Saxon-JS 是用纯 JavaScript 编写的 XSLT 3.0 运行时。它旨在执行由 Saxon-EE 编译的样式表导出文件 (SEF)。

但它不是免费的,所以你必须购买许可证。

于 2020-04-22T20:09:29.967 回答