XMLHelper
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