早上好,
在InDesign中,我尝试使用具有以下结构的XML创建多个数据库记录:
<Root>
<record>
</record>
<record>
</record>
</Root>
我完全有XML导出,但是我想应用XSLT来打破每个记录的这些单独文件,并将记录作为每个记录的根。例如:
File1.xml:
<record>
</record>
File2.xml:
<record>
</record>
我使用Google搜索并看到有人说您不能将XSLT 2.0功能与InDesign导出功能一起使用。是否可以使用XSLT 1.0执行此操作?
谢谢!
答案 0 :(得分:0)
我对InDesign XSLT引擎并不这么认为。相反,脚本可以通过导出到xml特定节点来工作:
var main = function() {
var root, records, f, n, doc;
if ( !app.documents.length ) return;
doc = app.activeDocument;
root = doc.xmlElements[0];
records = root.evaluateXPathExpression ( "./record" );
n = records.length;
while ( n-- ) {
f = File ( Folder.desktop+"/"+doc.name.replace (".indd", "")+"_"+(n+1)+".xml" );
records[n].exportFile ( ExportFormat.XML, f );
}
}
main();
&#13;
答案 1 :(得分:0)
Loic是正确的,InDesign使用XSLT 1.0引擎,我认为CC 2015仍然如此。
另一种选择是导出XML未转换并运行外部脚本,调用您选择的XSLT 2.0引擎来转换XML。