我有这个脚本,它显示View --> Show Structure
窗格:
with(obj.doc.xmlViewPreferences)
{
// this opens the View --> Show Structure pane
showStructure = true;
showTagMarkers = true;
showTaggedFrames = true;
showTextSnippets = true;
}
但是,根节点保持最小化。我发现按住Alt
键并单击此根节点将扩展整个树。
那么有没有一种方法可以在这个根节点上以编程方式执行“Alt + click”? 我正在使用Windows和CS5。
答案 0 :(得分:1)
您可以通过选择节点来结束。例如。要选择第3级的所有元素,并且在上面的级别上展开所有元素,您将使用
app.select(
app.activeDocument.xmlElements.item(0) // the root element
.xmlElements.everyItem() // repeat this line for each nesting level
.xmlElements.everyItem() // and so forth
.getElements() // provide an array with the actual selectable items
);
对指示的行重复更深层次。使用以下代码段,您还可以选择没有子项的元素的XML属性:
.xmlAttributes.everyItem()
最后取消选择以清理选择要点。
app.select(null);
编辑:对于任意深度,您可以使用循环。它只是应该确保在请求它们之前XMLElement / XMLAttribute集合中有元素。结果代码:
var items = app.activeDocument.xmlElements.everyItem();
while( items.xmlElements.length ) {
items = items.xmlElements.everyItem();
app.select(items.getElements());
if( items.xmlAttributes.length )
app.select(items.xmlAttributes.everyItem().getElements());
}
app.select(null);