2014-10-06 2 views
2

следующий пример кода:Не добавлять теги Indesign в корневой элемент?

var myDocument = app.documents.add(); 
var myTextFrame = myDocument.pages.item(0).textFrames.add(); 
myTextFrame.geometricBounds = ["6p", "6p", "24p", "24p"]; 
myTextFrame.contents = "Hello World!"; 

myBounds = myTextFrame.geometricBounds; 


var myX = "" + myBounds[1]; 
var myY = "" + myBounds[0]; 

var myTag = myDocument.xmlTags.add("text-area"); 

var myXMLElement = myDocument.xmlElements.item(0).xmlElements.add(myTag, myTextFrame); 
myXMLElement.xmlAttributes.add("x", myX); 
myXMLElement.xmlAttributes.add("y", myY); 

Это даст следующую XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Root><text-area x="25.4" y="25.4000000000001">Hello World!</text-area></Root> 

Могу ли я как-то не показывать корневой тег? Удалите его или не позволяйте ему отображаться в .xml? Я искал разные ключевые слова, но я не мог найти решение этого.

Заранее спасибо.

ответ

2

По умолчанию каждый документ имеет новый корневой элемент. Если вы возьмете первый xmlElement, это корневой элемент. Вот пример изменений вы бы иметь text-area быть корневой элемент:

var myDocument = app.documents.add(); 
var myTextFrame = myDocument.pages[0].textFrames.add(); 
myTextFrame.geometricBounds = ["6p", "6p", "24p", "24p"]; 
myTextFrame.contents = "Hello World!"; 

var myRootElem = myDocument.xmlElements[0]; 
myRootElem.markupTag.name = "text-area"; 

var myBounds = myTextFrame.geometricBounds; 
var myX = "" + myBounds[1]; 
var myY = "" + myBounds[0]; 

myRootElem.xmlAttributes.add("x", myX); 
myRootElem.xmlAttributes.add("y", myY); 

myTextFrame.markup(myRootElem); 
+0

Хорошо это может в конечном итоге работать. Это возможно только для каждого документа, а также для каждой страницы в документе? –

+1

Не похоже, что это возможно. InDesign дает сообщение об ошибке при попытке добавить несколько корневых элементов. –

+0

Черт ... Спасибо вам за ваш ответ, я дам вам большие пальцы: P –

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