我无法获取<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
我得到了 3 个元素,并且能够很好地运行getName()
andgetText()
方法。<result>
但是,如果我尝试在定义条目后立即使用该行获取特定元素的子元素,则会var results = entries.getChildren();
收到运行时错误“TypeError:无法在对象 [Element: ] 中找到函数 getChildren”。什么平分?
我不明白这里发生了什么(显然)。getRootElement()
返回一个元素类型。getChildren()
返回一个元素数组。哪里entries
变成了不是元素的东西,有没有更好的方法来解析这个文档?我觉得我在这里错过了一些非常愚蠢的东西。