InDesignでのXML技術の活用の仕方は、制作の現場によって千差万別です。
ドキュメント全体のXML構造を意識した本格的なXML組版をするなら、それは素晴らしいし、それこそがXML組版の真骨頂!
だけど、いつもいつもそんなXMLの使い方をしなくちゃいけないわけじゃない。
ちょっとした目印程度にXMLタグを利用することだって大いにあります。
ここでは、「ちょっとした目印として文字列にXMLタグをつけている」ような場合にも大活躍する、XML要素に内容を入れたり、属性を設定したりするInDesignのスクリプトを紹介します。
公式サイト Adobe InDesignを詳しく見てみる
ドキュメントサンプル
InDesignで次のようなドキュメントを準備しました。
このページ内に<著者紹介>のXMLタグのついた赤枠のテキストフレームがひとつあります。
この<著者紹介>タグの中の最後に<著者>のXMLタグを置きました。内容が入っていないので青色のタグのみが表示されています。
画面左に表示した構造では、<著者>タグがあることが確認できます。
この<著者>の内容としてスクリプトでテキストを入れます。
構造画面を見ると、<著者>に “id”属性がありますが、値は “0000” なのでこれも変更します。
そしてさらに、新しい属性とその属性値を追加します。

コードサンプル
#target indesign
var objDoc = app.activeDocument;
var objXMLEle = objDoc.xmlElements[0].xmlElements[0].xmlElements[0];
// XML要素名
var strTagname = objXMLEle.markupTag.name;
// XML要素の内容
var strContents = objXMLEle.contents;
// XML要素の属性名
var strAttname = objXMLEle.xmlAttributes[0].name
// XML要素属性値
var strAttvalue = objXMLEle.xmlAttributes[0].value
// 今のタグの状態を表示
alert ("XMLタグの名前: " + strTagname + "\n\n" +
"XML要素の内容: " + strContents + "\n\n" +
"XMLタグの属性名: " + strAttname + "\n\n" +
"XMLタグの属性値: " + strAttvalue );
// 値を変更する
objXMLEle.contents = "リプちん";
objXMLEle.xmlAttributes[0].value = "1234";
// 新たな属性の追加とその値の設定
objXMLEle.xmlAttributes.add("性格", "のんき");
実行経過/実行結果/解説
コードサンプルの6〜13行目で、今のページの内容を変数に取得して、15行目でアラート表示しています。

アラートはそのままOKボタン進み、で21行目で、<著者>の要素を「リプちん」と設定、22行目でid属性の値を「1234」と入れました。
最後に「性格」という名前で属性を追加するのと同時に、値を「のんき」に設定しています。

公式サイト Adobe InDesignを詳しく見てみる
コメント