InDesignのJavaScriptでE4X方式でXMLを扱うとき

つまずいたポイントを書いておきます。


・子要素を追加する
E4X記法を使うとうまくいかないので、素直にメソッドを使った方がよい)

var frame = new XML("<frame/>");
var paragraph = new XML("<paragraph/>");
frame.appendChild(paragraph);


・属性を追加する

frame.@id = "a1";

あるいは "-" が入っている属性名などなら、

frame["@frame-id"] = "a1";


・Namespaceを使う

var ns = new Namespace("aid", "http://ns.adobe.com/AdobeInDesign/4.0/");

var paragraph = new XML("<paragraph/>");
paragraph.addNamespace(ns);
paragraph.@pstyle = "本文";
paragraph.@pstyle.setNamespace(ns);