我可以像这样检查所选文本的XML:
app.selection[0].associatedXMLElements[0];
但是在我的研究中,我仍然对如何使用脚本使用XML做最基本的事情感到头疼:如何为项目分配XML?我可以通过打开结构窗格,然后将元素拖到页面上的所需框架上来手动执行此操作。如果它可能是老式的方式,我想用脚本可以做到这一点。
如何将现有XML元素链接到现有页面项?
以上代码似乎只适用于所选文字。如果我选择一个图形,它就不会运行 如何将XML链接到选定的图形?
答案 0 :(得分:1)
您可以引用xml节点和文本框架并使用placeXML
myXMl = myDoc.xmlElements[0];
var myXmlNode = myXMl.evaluateXPathExpression("/myXML/node1")[0];
var myFrame = app.activeDocument.pages[0].textFrames[0];
myXmlNode.placeXML(myFrame);
这种方法的优点是任何辅助: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';
答案 1 :(得分:0)
有两个特定的属性。 AssociatedXMLElement用于包含textFrames的pageItems,如果未应用任何标记,则可以为null。 AssociatedXMLElements仅适用于文本对象(字符,单词...),因为它们可以应用多个标签。请注意,未标记的文本将返回一个空数组,而不是null。
将标记关联到pageItems要求您首先创建或定位现有的xmlElements,然后使用myInDesignObject.markup(myXMLElement)。
在您想要浏览XML结构时,Nicolai建议的EvaluateXPathExpression非常有趣。但是,从对象调查关联的XMLElement而不是调查xml结构有时会更快。
FWIW