在使用ESTK/InDesign导出时将XSLT应用于XML
Applying XSLT to XML while exporting with ESTK/InDesign
大家下午好,
我得到了一些帮助来设置这个结构,我使用它来基于XML结构中的某些XML元素动态地在桌面上创建一个文件夹,然后循环遍历XML记录,将它们分割成单独的文件,并将它们放入各自的文件夹中。到目前为止,它工作得很好,但是我需要应用一个XSL,它将某些属性转换为元素。在ESTK中是否有一种方法可以在导出时使用JavaScript应用XSLT ?
var root, records, f, n, doc;
doc = app.activeDocument;
root = doc.xmlElements[0];
records = root.evaluateXPathExpression ( "./record" );
n = records.length;
while ( n-- ) {
var ff = new Folder(Folder.desktop + "/" +app.activeDocument.xmlElements.item(0).xmlElements.item(n).xmlElements.item(0).xmlAttributes.item(0).value + "/data/" +
app.activeDocument.xmlElements.item(0).xmlElements.item(n).xmlElements.item(0).xmlElements.item(0).xmlElements.item(1).xmlAttributes.item(1).value + "/" +
app.activeDocument.xmlElements.item(0).xmlElements.item(n).xmlElements.item(0).xmlElements.item(0).xmlElements.item(2).xmlAttributes.item(1).value);
if (!ff.exists)
ff.create();
f = File ( ff +"/"+app.activeDocument.xmlElements.item(0).xmlElements.item(n).xmlElements.item(0).xmlElements.item(0).xmlElements.item(0).xmlAttributes.item(1).value);
records[n].exportFile ( ExportFormat.XML, f);
}
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="Root/record">
<record name="{@name}" type="{@type}">
<item name="{item/@name}">
<value>
<xsl:for-each select="item/value/item">
<item name="{@name}">
<value><xsl:value-of select="@value"/></value>
</item>
</xsl:for-each>
</value>
</item>
</record>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
见答案:https://forums.adobe.com/thread/1813381
插入第13行前:
app.activeDocument.xmlExportPreferences.allowTransform=true;
app.activeDocument.xmlExportPreferences.transformFilename=File('PATH_TO_YOUR_TRANSFROM_FILE');
相关文章:
- 将函数的上下文应用于javascript变量
- 将CSS应用于printWindow.print();在Javascript中
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- $scope.apply()何时应用于angular
- Javascript非常简单:'阅读更多''显示较少'应用于Wordpress的功能
- 尝试应用于<tr>在ng单击中
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- 将脚本应用于Angular 2上的输入
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何将参数应用于String.prototype.format函数
- 动态地将过滤器应用于 JSON.parse()
- $location更改不适用于ngchange,而是应用于ngclick
- 如何将 :empty 选择器应用于 XML 文档
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 如何使用 JavaScript 将样式应用于 CKEditor 中的选定文本
- MongoDB 无法将$addToSet应用于 Meteor JS 中的非数组
- 将类应用于jquery ui对话框
- 将CSS应用于在JavaScript中创建的表-表的位置不正确
- 如果检查了输入,则将类应用于<身体>,没有jQuery
- 在使用ESTK/InDesign导出时将XSLT应用于XML