2014-10-12 6 views
0

В моей панели «Структура» есть некоторые элементы, их частичное имя идентично, например. image01, image03, image03 и т.д.Элемент структуры XML-структуры InDesign по частному имени

Я хочу знать, если есть способ получить доступ к ним с помощью сценариев с использованием метода itemByName(), но предоставляя частичное имя, как в CSS я могу использовать

h1[rel*="external"] 

есть ли подобный способ сделать это:

var items2 = items.xmlElements.itemByName("image"); 

ответ

1

Вы можете использовать XPath:

var rootXE = app.activeDocument.xmlElements.item(0); 
 
var tagXEs = rootXE.evaluateXPathExpression("//*[starts-with(local-name(),'image')]");

+0

Это сделало трюк! Большое спасибо! –

1

Вы могли бы попробовать что-то вроде кода ниже. Вы можете проверить свойства markupTag.name с регулярным выражением. Регулярное выражение эквивалентно примерно /^image/ в вашем примере (найти image в начале строки).

function itemsWithPartialName(item, partialName) { 
    var elems = item.xmlElements; 
    var result = []; 

    for (var i=0; i<elems.length; i++) { 
     var elem = elems[i]; 
     var elemName = elem.markupTag.name; 

     var regex = new RegExp("^" + partialName); 
     if (regex.test(elemName)) { 
     result.push(elem); 
     } 
    } 

    return result; 
} 

itemsWithPartialName(/* some xml item */, 'image'); 
+0

я должен делать что-то неправильно, потому что markupTag.name возвращает неопределенное значение. функции itemsWithPartialName (partialName) { var items = app.activeDocument.xmlElements.everyItem(); var sub_items = items.xmlElements.everyItem(); var count_images = 0; для (var i = 0; i

+0

Попробуйте 'var sub_items = items.everyItem(). XmlElements;' (untested). Это предполагает, что корневой элемент имеет вспомогательные элементы ... Можете ли вы опубликовать пример своей структуры xml и чего вы пытаетесь достичь? –

+0

Моя структура такова: газета >> cars_pa >> Автомобили >> apartments_pa >> квартиры >> image01 >> image02 >> image03 >> image04 >> image05 >> image06 >> image07 .... (почему я не могу иметь жесткий возврат? что я печатая неправильно?) Газета является корневым элементом, и все остальное лвл-1 ребенок –

Смежные вопросы