XMLHelper

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:3分
  • XML ヘルパースクリプトインクルードを使用すると、スクリプト内の XML を簡単に解析できます。

    XML を JSON に、または JSON を XML にエクスポートするには、次のメソッドを使用します。
    • toObject() メソッドは、XML 要素を JSON プロパティとして返します。このメソッドは、指定されたパラメーターが XML ドキュメントまたは XML 文字列のどちらであるとしても正常に機能します。このメソッドには、 コンストラクターで XML 入力を指定する代替として、変換の XML 入力のオプションのパラメーターがあります。
    • toXMLDoc() メソッドは、XML 要素として提供された JSON を返します。
    注:
    XML 内のアンパサンド文字 (&) はエスケープする必要があります。そうしないと、変換はサイレントで失敗します。

    次の例は、XML ドキュメントを JSON に変換し、再帰関数を使用して各メンバーを出力する方法を示しています。再帰関数は、XML ドキュメント構造が JSON としてどのようにレンダリングされるかを示すのに役立ちます。
    var xmlString = "<company>" + "<employee>" + "<id>10</id>"
     + "<firstname>Tom</firstname>" + "<lastname>Cruise</lastname>" + "<test>test1</test>"
     + "<test>test3</test>" + "</employee>" + "<employee>" + "<id>20</id>" + "<firstname>Paul</firstname>"
     + "<lastname>Enderson</lastname>" + "<test>test6</test>" + "<test>test5</test>" + "</employee>" + "<employee>"
     + "<id>30</id>" + "<firstname>Paul</firstname>" + "<lastname>Bush</lastname>" + "<test>test2</test>"
     + "<test>test4</test>" + "</employee>" + "</company>";
    var helper = new XMLHelper(xmlString);
    var obj = helper.toObject();
    logObj(obj, "*");
    
    function logObj(obj, sep) {
      for (x in obj) {
        if (typeof obj[x] != "function") {
          gs.log(sep + x + ":: " + obj[x]);
        }
        logObj(obj[x], sep + "*");
      }
    }
    出力:
    *** Script: *employee:: [object Object],[object Object],[object Object]
    *** Script: **2:: [object Object]
    *** Script: ***id:: 30
    *** Script: ***test:: test2,test4
    *** Script: ****0:: test2
    *** Script: ****1:: test4
    *** Script: ***firstname:: Paul
    *** Script: ***lastname:: Bush
    *** Script: **0:: [object Object]
    *** Script: ***id:: 10
    *** Script: ***test:: test1,test3
    *** Script: ****0:: test1
    *** Script: ****1:: test3
    *** Script: ***firstname:: Tom
    *** Script: ***lastname:: Cruise
    *** Script: **1:: [object Object]
    *** Script: ***id:: 20
    *** Script: ***test:: test6,test5
    *** Script: ****0:: test6
    *** Script: ****1:: test5
    *** Script: ***firstname:: Paul
    *** Script: ***lastname:: Enderson