2014-07-16 44 views
0

我打電話給Google Apps腳本腳本(Javascript)中的Google Apps Admin Settings API,以檢索Google Apps域中的最大用戶數。如何從Javascript中提取AtomPub XML HTTP響應中的值(適用於Google Apps管理設置API)

成功的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屬性(在這種情況下,它)的值是我關心的只是一部分。

如何提取該值以便將其分配給整型變量?

我的第一個直覺是寫一個瘋狂的複雜正則表達式,但我知道必須有一個更簡單的方法!

我認爲有一種方法可以用JQuery來實現,但是在Google Apps腳本中無法使用jQuery。

回答

1

閱讀this previous answer。無需編寫瘋狂的正則表達式...只需拿起直接處理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); 
... 
相關問題