将 XML 个元素链接到 InDesign 中的页面项目
Linking XML elements to page items in InDesign
我可以像这样检查 selected 文本的 XML:
app.selection[0].associatedXMLElements[0];
但在我的研究中,我仍然对如何使用脚本对 XML 做最基本的事情摸不着头脑:如何将 XML 分配给项目?我可以通过打开结构窗格,然后将元素拖到页面上所需的框架上来手动执行此操作。如果可以用老式的方式,我想用脚本也可以。
如何 link 现有 XML 元素到现有页面项目?
以上代码似乎只适用于 selected 文本。如果我 select 一个图形,它不会 运行。
我如何 link XML 到 selected 图形?
您可以引用 xml 节点和文本框并使用 placeXML
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 都将自动链接到现有的匹配样式
另一种方法是 select 将节点的值作为文本并将其放入文本框中的插入点:
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 的 pageItems,如果未应用标记,则可能为空。 AssociatedXMLElements 仅适用于文本对象(字符、单词...),因为它们可以应用多个标签。请注意,非标记文本 return 是一个空数组而不是 null。
将标签关联到 pageItems 要求您首先创建或定位现有的 xml 元素,然后使用 myInDesignObject.markup ( myXMLElement )。
一旦您想浏览 XML 结构,Nicolai 建议的 EvaluateXPathExpression 就很有趣。但有时从对象中调查关联的 XML 元素确实比调查 xml 结构更快。
FWIW
我可以像这样检查 selected 文本的 XML:
app.selection[0].associatedXMLElements[0];
但在我的研究中,我仍然对如何使用脚本对 XML 做最基本的事情摸不着头脑:如何将 XML 分配给项目?我可以通过打开结构窗格,然后将元素拖到页面上所需的框架上来手动执行此操作。如果可以用老式的方式,我想用脚本也可以。
如何 link 现有 XML 元素到现有页面项目?
以上代码似乎只适用于 selected 文本。如果我 select 一个图形,它不会 运行。
我如何 link XML 到 selected 图形?
您可以引用 xml 节点和文本框并使用 placeXML
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 都将自动链接到现有的匹配样式
另一种方法是 select 将节点的值作为文本并将其放入文本框中的插入点:
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 的 pageItems,如果未应用标记,则可能为空。 AssociatedXMLElements 仅适用于文本对象(字符、单词...),因为它们可以应用多个标签。请注意,非标记文本 return 是一个空数组而不是 null。
将标签关联到 pageItems 要求您首先创建或定位现有的 xml 元素,然后使用 myInDesignObject.markup ( myXMLElement )。
一旦您想浏览 XML 结构,Nicolai 建议的 EvaluateXPathExpression 就很有趣。但有时从对象中调查关联的 XML 元素确实比调查 xml 结构更快。
FWIW