当您在Indesign的“结构”窗格中时,您可以选择将其导出为XML。
使用extendscript支持的exportFile函数,我能够将文件写入文件。
我想要一种将XML转换为变量的方法,而无需将文件写入磁盘。
有办法做到这一点吗?我错过了什么?
答案 0 :(得分:1)
是和否。最简单的成就是将文档导出为XML文件。然后将XML文件作为Object加载,如:
var xmlFile = File ( Folder.desktop+"/myXML.xml" );
app.activeDocument.exportFile ( ExportFormat.XML, xmlFile );
xmlFile.open('r');this
var xmlObject = XML ( xmlFile.read() );
xmlFile.close();
xmlFile.remove();
alert( xmlObject.toXMLString() );
但是,当然,在浏览InDesign DOM XMLElements对象并将这些值传递给对象时,您可以尝试构建此xml对象而不通过该外部对象。但这真的很麻烦。
答案 1 :(得分:0)
结构元素称为XMLElements
结构的根为app.documents[0].xmlElements[0]
您可以使用传递xpath表达式的XMLElement对象的evaluateXPathExpression
方法来选择元素,以选择XML节点。所选元素可以作为对象分配给变量
var myXmlSelection = app.documents[0].xmlElements[0].evaluateXPathExpression("/book/chapter")[0];
您可以使用placeXML方法将引用的元素放置到textFrame中
myXMLElement.placeXML(myTextFrame)