InDesign CS6脚本更改样式基于XML属性不起作用

时间:2013-06-09 22:20:54

标签: javascript xml adobe-indesign

我正在使用InDesign CS6中的XML文件,每个文件都有几十个段落,其中属性为class="boxtitle"。其中每一个都需要设置为“Boxtitle”段落样式。由于InDesign不允许您根据属性设置样式,因此我只能为相关段落指定正确样式的选项是手动或通过脚本执行此操作。

当然,我选择了后者,并在Adobe论坛上发现了一个似乎可以解决问题的脚本。不幸的是,脚本无法运行,我不确定原因。

var myDoc = app.activeDocument;
//____________________ Apply Boxtitle
try{
var rootElement = myDoc.xmlElements.item(0);
var subheadElementList = rootElement.evaluateXPathExpression("Boxtitle");
for(i=subheadElementList.length-1; i>=0; i--){
    var myAttribute = subheadElementList[i];
    myAttribute.xmlContent.appliedParagraphStyle = myDoc.paragraphStyles.itemByName("boxtitle");
    }
}catch(e){}

如果有人能指出我在这里会发生什么事,我会很感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要使用正确的xPath表达式来匹配您的段落

var subheadElementList = rootElement.evaluateXPathExpression("//*[@class = 'boxtitle']");

或更具体的,如果你的段落有markupTag名称" mypara"例如:

var subheadElementList = rootElement.evaluateXPathExpression("//mypara[@class = 'boxtitle']");