【发布时间】: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