node.js - 使用 Node.js 中的 XSLT 字符串将 XML 字符串 [不是文件!] 转换为 HTML
问题描述
我有两个字符串。
第一个是 xml 字符串,保存为字符串,而不是来自文件。第二个是我从 XSLT 文件加载的字符串fs.readFile(...)
。
由于MSBuildTools等的一些错误,我已经尝试使用libxslt
但无法安装它。npm
有什么替代品libxslt
吗?我也遇到xslt-processor
过,但它只接受文件作为参数。
编辑1:
为了向您提供概述,可以在此处下载 XSLT 文件和示例 XML 文件(均在应用程序中作为字符串处理):
解决方案
我以某种方式为我的问题找到了解决方法:
- 我现在使用该
xth
库(通过 npm 安装npm i xth
:) - 将其导入我的函数:
var xth = require('xth');
- 将 xml 字符串放入数据 URI:
var xml = 'data:text/xml,' + encodeURIComponent(xmlString);
- XSLT 文件现在不是字符串,而是文件:
var xsl = './../components/ELGA_Stylesheet_v1-0.xsl';
然后,我只是在xth - npm的示例中调用方法 xth
1 xth(xml, xsl, function (html) { 2 html = html.replace(/</g, "<"); 3 html = html.replace(/>/g, ">"); 4 html = html.replace(/&/g, "&"); 5 openWindow(html); 6 });
该项目
html
是 xslt 转换后的字符串,我遇到了最后一个问题:在<script>
输出字符串的标签中,符号 <、> 和 & 作为 <、> 和 & 这导致了问题。第 2 到 4 行是解决此问题的方法
openWindow(html)
是我自己在新的电子窗口中打开结果字符串的方法。
注意:仍然存在一个问题:如此处所述,通过 #in 导航不起作用<a href=#id>
,因为 Chromium 不允许导航到顶部帧到数据 uri。
推荐阅读
- javascript - 解决 8 kyu 定义卡片套装 Code Wars(在 javascript 中)?
- python - sync_to_async 是否提高了 django ORM 查询的性能?
- macos - 在 Android 工作室中使用 svn 时,Authentication Required 继续重复
- node.js - 如何让 Jest 与 v8intrinsic “--allow-natives-syntax”一起使用?
- r - 在 R 中具有两个不同点符号的 geom_jitter 箱线图
- python - 熊猫表到html,水平两列
- c# - Visual Studio - 进入另一个项目中的 (F11) 代码
- ios - 用于外部设备功能解锁的 Apple 应用内购买或 Apple Pay/Stripe
- python - ModuleNotFoundError:没有名为“pyautogui”的模块
- r - 使用 RSelenium 单击“报告”或“图像报告”