2014-10-06 33 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

好的,這可能最終會奏效。這僅適用於每個文檔,還是僅適用於文檔中的每個頁面? – 2014-10-06 14:52:50

+1

它看起來不可能。嘗試添加多個根元素時,InDesign會提供錯誤消息。 – 2014-10-06 15:11:17

+0

該死的......謝謝你的回答,我給你豎起大拇指:P – 2014-10-06 15:12:15