1

我正在从 Google Apps 脚本脚本 (Javascript) 调用Google Apps Admin Settings API,以检索我们 Google Apps 域中的最大用户数。

成功的 GET 请求以 AtomPub XML 格式返回响应,如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<id>https://apps-apis.google.com/a/feeds/domain/2.0/domain.com/general/maximumNumberOfUsers</id>
<updated>2014-07-16T00:55:27.837Z</updated>
<link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/domain/2.0/domain.com/general/maximumNumberOfUsers'/>
<link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/domain/2.0/domain.com/general/maximumNumberOfUsers'/>
<apps:property name='maximumNumberOfUsers' value='100'/></entry>

maximumNumberOfUsers属性的值(在本例中为100)是我唯一关心的部分。

如何提取该值以便将其分配给整数变量?

我的第一直觉是写一个疯狂的复杂正则表达式,但我知道一定有更简单的方法!

我认为有办法用 JQuery 做到这一点,但没有办法在 Google Apps Script 中使用 jQuery。

4

1 回答 1

1

阅读这个先前的答案。无需编写疯狂的正则表达式......只需选择直接处理 xml 结构的实用程序!

这是一段未经测试的代码,它使用该getElementByVal()答案中的函数:

...
var xml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');
var entries = document.getRootElement().getChildren('entry', atom);

var maxUsers = getElementByVal( entries, 'property', 'name', 'maximumNumberOfUsers' );
                    .getAttribute(value);
...
于 2014-07-16T06:14:31.043 回答