「スクリプちん」のサイトデザインをリニューアル作業中です…^^;

XML要素の要素名・内容・属性・属性値にアクセスする

当ページのリンクには広告が含まれています。
スクリプちん:InDesignのJavaScript 「XML〜要素情報の取得」

InDesignでのXML技術の活用の仕方は、制作の現場によって千差万別です。

ドキュメント全体のXML構造を意識した本格的なXML組版をするなら、それは素晴らしいし、それこそがXML組版の真骨頂!

だけど、いつもいつもそんなXMLの使い方をしなくちゃいけないわけじゃない。
ちょっとした目印程度にXMLタグを利用することだって大いにあります。

ここでは、「ちょっとした目印として文字列にXMLタグをつけている」ような場合にも大活躍する、XML要素に内容を入れたり、属性を設定したりするInDesignのスクリプトを紹介します。

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる

目次

ドキュメントサンプル

InDesignで次のようなドキュメントを準備しました。

このページ内に<著者紹介>のXMLタグのついた赤枠のテキストフレームがひとつあります。

この<著者紹介>タグの中の最後に<著者>のXMLタグを置きました。内容が入っていないので青色のタグのみが表示されています。
画面左に表示した構造では、<著者>タグがあることが確認できます。

この<著者>の内容としてスクリプトでテキストを入れます。

構造画面を見ると、<著者>に “id”属性がありますが、値は “0000” なのでこれも変更します。
そしてさらに、新しい属性とその属性値を追加します。

XML要素にアクセスするサンプルドキュメント

コードサンプル

#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行目でアラート表示しています。

XML要素にアクセスするサンプルドキュメントの内容表示

アラートはそのままOKボタン進み、で21行目で、<著者>の要素を「リプちん」と設定、22行目でid属性の値を「1234」と入れました。

最後に「性格」という名前で属性を追加するのと同時に、値を「のんき」に設定しています。

XML要素の内容と属性値が変更されたドキュメント

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる

よかったらシェアしてね!
  • URLをコピーしました!
目次