有人尝试过在node.js中使用XSLT样式表将xml文件转换为html网页吗?我的背景是Java。我通常使用 SAXON 将 XML 转换为 HTML 网页。我是 Node.js 的新手。我尝试使用一些库(如node_xslt、libxsltjs 等)来实现这一点,但没有成功。如果有人尝试过使用其他与 XSLT 样式表配合使用的库,请发布一个链接。任何帮助将不胜感激。
如果您想在 Node.js 应用程序中使用 Saxon,您基本上有三种选择,但没有一个是理想的:
(a) 使用各种机制调用 Java。
(b) 使用 Saxon/C 的端口到此处构建的 Node.js:https://github.com/rimmartin/saxon-node 这是前沿的东西,我不知道该项目能走多远已经有了。
(c) 等待 Saxon-JS 尽快到达。请参阅 http://dev.saxonica.com/blog/mike/2016/02/introducing-saxon-js.html
在撰写本文时,这对我有用......
> npm install saxon-js (see https://www.npmjs.com/package/saxon-js)
const saxon = require('saxon-js');
const env = saxon.getPlatform(); const doc = env.parseXmlFromString(env.readFile("styles/listview.xsl"));
doc._saxonBaseUri = "dummy"; const sef = saxon.compile(doc);
let xml = "<ROWSET><ROW><EMPLOYEE_ID>107</EMPLOYEE_ID><FIRST_NAME>Summer</FIRST_NAME><LAST_NAME>Payne</LAST_NAME><EMAIL>[email protected]</EMAIL><PHONE>515.123.8181</PHONE><HIRE_DATE>2016-06-07</HIRE_DATE><MANAGER_ID>106</MANAGER_ID><JOB_TITLE>Public Accountant</JOB_TITLE></ROW></ROWSET>";
let html = saxon.transform({
stylesheetInternal:sef,
sourceType: "xml",
sourceText:xml,
destination: "serialized"}, "async"
).then( output => {
console.log(output.principalResult);
} );
> node test.js
输出应该是转换后的 XML。
运气。