【问题标题】:a standalone xslt javascript library?一个独立的 xslt javascript 库?
【发布时间】:2015-08-13 12:41:12
【问题描述】:

这是我在这里的第一篇文章

我正在为 Indesign 开发一组脚本 (JS/ExtendScript) 以自动化目录制作。输入数据是xml。有时在早期使用 xslt 重新排列 xml 可能非常方便,但我想不出办法。那里有一些 js xslt 库,但它们基本上都是浏览器 xslt 引擎的包装器,需要打开的浏览器窗口和其中的文档。

我知道我总是可以使用 libproc 或类似工具进行外部 xslt 转换,甚至为它编写一个 shell/batch 脚本,但对于我的客户来说,它不再是一键式解决方案。

问题:有人知道独立的 js xslt 模块吗? 有没有办法让脚本直接与 Chrome(?) xslt 引擎对话而不打开文档? 还有其他方法吗?

非常感谢! 升

【问题讨论】:

  • 浏览器没有用 Javascript 实现的 XSLT 处理器,它们集成(Chrome:libxslt,IE:MSXML)或附带(Mozilla:Transformix)用 C 或 C++ 完成的 XSLT 1.0 实现。 Saxon-CE 是 XSLT 2.0 的 Javascript 实现(从 Saxon 9 的 Java 版本交叉编译),但它也只能在浏览器中工作。最后,frameless.io/xslt 是在 Javascript 中实现 XSLT 2.0 的又一次尝试,但同样在浏览器内部作为客户端 Javascript。
  • InDesign 带有一个内置的基本 XSLT 引擎 - 来自内存的 XSLT 1.0。 “我想不出办法” > 在“导入 XML”对话框中单击“使用 XSLT”...
  • 嗨@Jongware,感谢您的评论。问题是,由于一些复杂的原因,我通过 var foo = new XML 获取我的 XML,然后读取其中的文件。
  • 嗨 Maritn,嗨 @Jongware,谢谢你的 cmets。问题是,由于一些复杂的原因,我通过 var foo = new XML 获取我的 XML,然后读取其中的文件。我实际上找到了一个独立的 xpath/xslt 库 - ajaxslt,但它也依赖于浏览器 DOM,而且我似乎没有足够的经验来为其编写 InDesign API。我想最好的方法是通过 xsltproc。 ups,抱歉重复发帖

标签: javascript xml xslt adobe-indesign extendscript


【解决方案1】:

我猜你总是需要在某个时候输出一个 XML 文件。然后,您可以按照 Jongware 的建议使用 InDesign XSLT 引擎(您甚至可以使用临时文档通过 XSLT 导入并导出 XML 文件以供进一步处理)。 另一种方法是通过 doScript 调用 shell 脚本,放在 Saxon 等命令行工具上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2017-10-01
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多