Скрипт InDesign CS6 для изменения стиля на основе атрибута XML не работает

Я работаю с файлами XML в InDesign CS6, каждый из которых имеет несколько десятков абзацев, в которых атрибут 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){}

Если кто-нибудь может указать мне, что здесь происходит шатко, я был бы признателен. Спасибо!


person ajw-art    schedule 09.06.2013    source источник


Ответы (1)


вы захотите использовать правильное выражение xPath, чтобы соответствовать вашим абзацам

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

или более конкретно, если ваши абзацы имеют имя markupTag «mypara», например:

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