【问题标题】:Breaking one XML file into multiple XML files with XSLT 1 for InDesign使用 XSLT 1 for InDesign 将一个 XML 文件分解为多个 XML 文件
【发布时间】:2015-08-27 14:46:58
【问题描述】:

大家早上好,

在 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 可以做到这一点吗?

谢谢!

【问题讨论】:

    标签: javascript xml xslt adobe-indesign


    【解决方案1】:

    对于 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();

    【讨论】:

      【解决方案2】:

      Loic 是正确的,InDesign 使用 XSLT 1.0 引擎,我认为 CC 2015 仍然如此。

      另一种选择是导出未转换的 XML 并运行调用您选择的 XSLT 2.0 引擎的外部脚本来转换 XML。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-20
        相关资源
        最近更新 更多