<result>
タグの子要素にアクセスできません。
コード:
var xml = '\
<document>\
<currentTime>2013-09-05 09:47:06</currentTime>\
<result>\
<one>2013-09-05 09:47:06</one>\
<two>2013-09-20 14:30:13</two>\
<three>2013-09-02 14:12:22</three>\
<four>2505</four>\
</result>\
<cachedUntil>2013-09-05 10:28:40</cachedUntil>\
</document>';
var document = XmlService.parse(xml);
var entries = document.getRootElement().getChildren();
Logger.log(entries.length);
for (var i = 0; i < entries.length; i++) {
Logger.log("%s -> %s",entries[i].getName(),entries[i].getText());
}
このコードを実行すると、予想どおり、ロガーに次のものが返されます。
[13-09-05 13:54:18:815 EAT] 3.0
[13-09-05 13:54:18:815 EAT] currentTime -> 2013-09-05 09:47:06
[13-09-05 13:54:18:816 EAT] result ->
[13-09-05 13:54:18:816 EAT] cachedUntil -> 2013-09-05 10:28:40
getName()
3 つの要素を取得し、 andgetText()
メソッドを問題なく実行できます。ただし、エントリを定義した直後<result>
の行のように、特定の要素の子を取得しようとすると、実行時エラー「TypeError: オブジェクト [Element: ] に関数 getChildren が見つかりません」が発生します。var results = entries.getChildren();
何のデュース?
ここで何が起こっているのかわかりません(明らかに)。getRootElement()
Element タイプを返します。getChildren()
要素の配列を返します。entries
要素ではないものに変わっているのはどこですか?このドキュメントを解析するより良い方法はありますか? ここで本当にばかげたことを見逃しているように感じます。