2015年10月28日水曜日

Google App Script - XMLBuilder

XmlServiceの簡易ラッパー

書いてみた。以下は、MusicXMLチュートリアルの Hello, World!を記述した例

Project key: ME6vSmFQZ_s_2Mvpt0A6O_35chaeZMmGx


  var EL = XMLBuilder.EL; // 頻繁に呼び出す関数なので、エイリアスを作っておく。

  var root = EL("score-partwise", {version:"3.0"}).add(
    EL("part-list").add(
      EL("score-part", {id:"P1"}).add(
        EL("part-name").text("Music"))).add(
      EL("part", {id:"P1"}).add(
        EL("measure", {number:"1"}).add(
          EL("attributes").add(
            EL("divisions").text("1"),
            EL("key").add(
              EL("fifths").text("0")),
            EL("time").add(
              EL("beats").text("4"),
              EL("beat-type").text("4")),
            EL("clef").add(
              EL("sign").text("G"),
              EL("line").text("2"))),
          EL("note").add(
            EL("pitch").add(
              EL("step").text("C"),
              EL("octave").text("4")))))));
  
  var docType = XMLBuilder.DocType(
    "score-partwise",
    "-//Recordare//DTD MusicXML 3.0 Partwise//EN",
    "http://www.musicxml.org/dtds/partwise.dtd");

  Logger.log(XMLBuilder.Doc(docType, root).toText());

編集のポイント

  • 要素を生成 EL(要素名, 属性)
  • 子要素を追加 .add(改行 インデントは、スクリプト・エディタ任せ
  • テキストを設定 .text(テキスト)
    数値は、暗黙的な型変換を避けるために文字列で渡す。※少数を渡す場合注意
  • 要素を閉じる ) エディタが対応する開始括弧をハイライトしてくれるので、任意の位置まで閉じる。

0 件のコメント:

コメントを投稿