使用node.js中的XSLT样式表将xml转换为html

问题描述 投票:0回答:2

有人尝试过在node.js中使用XSLT样式表将xml文件转换为html网页吗?我的背景是Java。我通常使用 SAXON 将 XML 转换为 HTML 网页。我是 Node.js 的新手。我尝试使用一些库(如node_xslt、libxsltjs 等)来实现这一点,但没有成功。如果有人尝试过使用其他与 XSLT 样式表配合使用的库,请发布一个链接。任何帮助将不胜感激。

html xml node.js xslt saxon
2个回答
3
投票

如果您想在 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


0
投票

在撰写本文时,这对我有用......

  1. 安装撒克逊...
   > npm install saxon-js (see https://www.npmjs.com/package/saxon-js)
  1. 编写一个小测试程序
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);
    } );
  1. 从命令行运行测试程序...
   > node test.js

输出应该是转换后的 XML。

运气。

© www.soinside.com 2019 - 2024. All rights reserved.