Node.js 上的 SaxonJS
Posted
技术标签:
【中文标题】Node.js 上的 SaxonJS【英文标题】:SaxonJS on Node.js 【发布时间】:2018-12-01 16:59:18 【问题描述】:我正在尝试运行一个空的简单代码 sn-p 在 Windows 10 上的 NodeJs v8.11.1 上测试 SaxonJS 1.1.0。
require('./Saxon-JS-1.1.0/SaxonJS.js');
但是我收到了这个错误:
PS C:\XXX\sandbox\xsl-transformation> node main.js
C:\XXX\xsl-transformation\Saxon-JS-1.1.0\SaxonJS.js:17136
setPlatform(JSTestDriver.platform);
^
ReferenceError: JSTestDriver is not defined
at initialize (C:\XXX\sandbox\xsl-transformation\Saxon-JS-1.1.0\SaxonJS.js:17136:25)
查看源代码,我可以看到:
function initialize()
"use strict";
if (inBrowser)
setPlatform(BrowserPlatform.platform);
saxonPrint("Saxon-JS " + getProcessorInfo().productVersion + " in browser", 0);
else
// Currently only Nashorn. (Later need to distinguish from Node case)
// Nashorn JSTestDriver
setPlatform(JSTestDriver.platform);
saxonPrint("Saxon-JS " + getProcessorInfo().productVersion + " in
Nashorn");
// node NodePlatform
if (typeof platform.initialize === "function")
platform.initialize();
Node Platform 好像没有实现。
但是,在documentation中,却写着:
我们在这里主要讨论的是在浏览器中运行 Saxon-JS。 但是,它也能够在服务器端 javascript 中运行 诸如 Node.js 之类的环境(在此尚未完全支持 释放)。
我深入搜索了一个 SaxonJS/NodeJS 的代码 sn-p 但我没有找到。 有没有人在 NodeJS 上工作的 SaxonJS 的 sn-p 代码?
【问题讨论】:
【参考方案1】:恐怕文档有点过头了。我们确实有用户报告说让代码在 Node.js 下运行,我们自己“在实验室”完成了它,但它需要对已发布产品的源代码进行调整。发布后,代码在浏览器平台和 Nashorn 两个平台下运行(在 Nashorn 下,它假定我们的测试工具尚未发布)。
我们正在为 Node.js 开发一个版本。作为产品正确地做到这一点需要很多浏览器版本中没有的功能,例如 XML 解析和序列化、调试支持、命令行接口和 API 等。
【讨论】:
感谢您的回答。祝发展顺利。 :) 你好迈克尔,我知道这可能是一个令人讨厌的问题,但你知道发布日期吗? 2019,上半年,结束,2020? 还有几个月的时间。不能说更多。我们不会在 Saxonica 约会 - 当我们认为它闻起来很好时,代码就会被发布。 @MichaelKay 现在 NodeJS 上 Saxon-JS 的状态如何? saxon-js v2 已于昨天在 npmjs.org 上发布,用于 NodeJS 等。 npmjs.com/package/saxon-js以上是关于Node.js 上的 SaxonJS的主要内容,如果未能解决你的问题,请参考以下文章