Javascript 将XML元素链接到InDesign中的页面项
我可以检查所选文本的XML,如下所示:Javascript 将XML元素链接到InDesign中的页面项,javascript,xml,adobe-indesign,extendscript,Javascript,Xml,Adobe Indesign,Extendscript,我可以检查所选文本的XML,如下所示: app.selection[0].associatedXMLElements[0]; 但在我的研究中,关于如何使用脚本处理XML的最基本的事情,我仍然摸不着头脑:如何将XML分配给项目?我可以手动打开结构窗格,然后将元素拖动到页面上所需的框架上。如果可以用老式的方式,我想用脚本也可以 如何将现有XML元素链接到现有页面项 上面的代码似乎只适用于选定的文本。如果我选择了一个图形,它将不会运行。 如何将XML链接到选定的图形 您可以引用xml节点和文本框并
app.selection[0].associatedXMLElements[0];
但在我的研究中,关于如何使用脚本处理XML的最基本的事情,我仍然摸不着头脑:如何将XML分配给项目?我可以手动打开结构窗格,然后将元素拖动到页面上所需的框架上。如果可以用老式的方式,我想用脚本也可以
- 如何将现有XML元素链接到现有页面项
- 上面的代码似乎只适用于选定的文本。如果我选择了一个图形,它将不会运行。
如何将XML链接到选定的图形
myXMl = myDoc.xmlElements[0];
var myXmlNode = myXMl.evaluateXPathExpression("/myXML/node1")[0];
var myFrame = app.activeDocument.pages[0].textFrames[0];
myXmlNode.placeXML(myFrame);
这种方法的优点是,任何aid:pstyle或aid:cstyle都将自动链接到现有的匹配样式
另一种方法是选择节点的值作为文本,并将其放置在插入点处的文本框中:
myXMl = myDoc.xmlElements[0];
var myText = myXMl.xpath("/myXML/node1[1]/text()");
var myFrame = app.activeDocument.pages[0].textFrames[0];
myFrame.parentStory.insertionPoints[-1].contents = myText + '\r';
有两个特定属性。AssociatedXMLElement用于包含textFrames的页面项,如果未应用标记,则可能为null。AssociatedXMLElements仅适用于文本对象(字符、单词…),因为它们可以应用多个标记。请注意,未标记的文本返回空数组且不为null 将标记与pageItems关联需要首先创建或定位现有的xmlElements,然后使用myInDesignObject.markup(myXMLElement) Nicolai建议的EvaluatePathExpression在浏览XML结构时非常有趣。但有时从对象中研究关联的XMLElement确实比研究xml结构更快
FWIW顺便说一句,根据我的经验,生成XHTML或Docbook XML然后使用转换为InDesign ICML要容易得多…谢谢!正是我需要的。