Class XmlService

XmlService

這項服務可讓指令碼剖析、瀏覽,並透過程式輔助方式建立 XML 文件。

// Log the title and labels for the first page of blog posts on the
// Google Workspace Developer blog.
function parseXml() {
  var url = 'https://gsuite-developers.googleblog.com/atom.xml';
  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 = root.getChildren('entry', atom);
  for (var i = 0; i < entries.length; i++) {
    var title = entries[i].getChild('title', atom).getText();
    var categoryElements = entries[i].getChildren('category', atom);
    var labels = [];
    for (var j = 0; j < categoryElements.length; j++) {
      labels.push(categoryElements[j].getAttribute('term').getValue());
    }
    Logger.log('%s (%s)', title, labels.join(', '));
  }
}

// Create and log an XML representation of the threads in your Gmail inbox.
function createXml() {
  var root = XmlService.createElement('threads');
  var threads = GmailApp.getInboxThreads();
  for (var i = 0; i < threads.length; i++) {
    var child = XmlService.createElement('thread')
        .setAttribute('messageCount', threads[i].getMessageCount())
        .setAttribute('isUnread', threads[i].isUnread())
        .setText(threads[i].getFirstMessageSubject());
    root.addContent(child);
  }
  var document = XmlService.createDocument(root);
  var xml = XmlService.getPrettyFormat().format(document);
  Logger.log(xml);
}

屬性

屬性類型說明
ContentTypesContentType列舉代表 XML 內容節點的類型。

方法

方法傳回類型簡短說明
createCdata(text)Cdata使用指定值建立未連接的 CDATASection 節點。
createComment(text)Comment使用指定值建立未連接的 Comment 節點。
createDocType(elementName)DocType針對具有指定名稱的根 Element 節點建立未連接的 DocumentType 節點。
createDocType(elementName, systemId)DocType以指定名稱為根 Element 節點建立未連接的 DocumentType 節點,以及為外部子集資料指定系統 ID。
createDocType(elementName, publicId, systemId)DocType為具有指定名稱的根 Element 節點建立未連接的 DocumentType 節點,以及為外部子集資料指定的公開 ID 和系統 ID。
createDocument()Document建立空白的 XML 文件。
createDocument(rootElement)Document建立具有指定根 Element 節點的 XML 文件。
createElement(name)Element使用指定的本機名稱建立未連接的 Element 節點,而且沒有命名空間。
createElement(name, namespace)Element使用指定的本機名稱和命名空間建立未連接的 Element 節點。
createText(text)Text使用指定值建立未連接的 Text 節點。
getCompactFormat()Format建立 Format 物件,用於輸出精簡的 XML 文件。
getNamespace(uri)Namespace使用指定的 URI 建立 Namespace
getNamespace(prefix, uri)Namespace使用指定的前置字串和 URI 建立 Namespace
getNoNamespace()Namespace建立代表沒有實際命名空間的 Namespace
getPrettyFormat()Format建立 Format 物件,以輸出使用者可理解的 XML 文件。
getRawFormat()Format建立 Format 物件,用於輸出原始 XML 文件。
getXmlNamespace()Namespace建立含有標準 xml 前置字串的 Namespace
parse(xml)Document從指定的 XML 建立 Document,而不必驗證 XML。

內容詳盡的說明文件

createCdata(text)

使用指定值建立未連接的 CDATASection 節點。

參數

名稱類型說明
textString要設定的值

回攻員

Cdata:新建立的 CDATASection 節點


createComment(text)

使用指定值建立未連接的 Comment 節點。

參數

名稱類型說明
textString要設定的值

回攻員

Comment:新建立的 Comment 節點


createDocType(elementName)

針對具有指定名稱的根 Element 節點建立未連接的 DocumentType 節點。

參數

名稱類型說明
elementNameString要在 DocType 宣告中指定的根 Element 節點名稱

回攻員

DocType:新建立的 DocumentType 節點


createDocType(elementName, systemId)

以指定名稱為根 Element 節點建立未連接的 DocumentType 節點,以及為外部子集資料指定系統 ID。

參數

名稱類型說明
elementNameString要在 DocType 宣告中指定的根 Element 節點名稱
systemIdString要設定的外部資料子集系統 ID

回攻員

DocType:新建立的 DocumentType 節點


createDocType(elementName, publicId, systemId)

為具有指定名稱的根 Element 節點建立未連接的 DocumentType 節點,以及為外部子集資料指定的公開 ID 和系統 ID。

參數

名稱類型說明
elementNameString要在 DocType 宣告中指定的根 Element 節點名稱
publicIdString要設定的外部資料公開 ID
systemIdString要設定的外部資料子集系統 ID

回攻員

DocType:新建立的 DocumentType 節點


createDocument()

建立空白的 XML 文件。

回攻員

Document:新建的文件


createDocument(rootElement)

建立具有指定根 Element 節點的 XML 文件。

參數

名稱類型說明
rootElementElement要設定的根 Element 節點

回攻員

Document:新建的文件


createElement(name)

使用指定的本機名稱建立未連接的 Element 節點,而且沒有命名空間。

參數

名稱類型說明
nameString要設定的本機名稱

回攻員

Element:新建立的 Element 節點


createElement(name, namespace)

使用指定的本機名稱和命名空間建立未連接的 Element 節點。

參數

名稱類型說明
nameString要設定的本機名稱
namespaceNamespace要設定的命名空間

回攻員

Element:新建立的 Element 節點


createText(text)

使用指定值建立未連接的 Text 節點。

參數

名稱類型說明
textString要設定的值

回攻員

Text:新建立的 Text 節點


getCompactFormat()

建立 Format 物件,用於輸出精簡的 XML 文件。格式設定工具預設為 UTF-8 編碼 (沒有縮排),且沒有額外的換行符號,但包含 XML 宣告及其編碼。

// Log an XML document in compact form.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getCompactFormat()
    .format(document);
Logger.log(output);

回攻員

Format:新建的格式設定工具


getNamespace(uri)

使用指定的 URI 建立 Namespace

參數

名稱類型說明
uriString命名空間的 URI

回攻員

Namespace:新建立的命名空間


getNamespace(prefix, uri)

使用指定的前置字串和 URI 建立 Namespace

參數

名稱類型說明
prefixString命名空間的前置字串
uriString命名空間的 URI

回攻員

Namespace:新建立的命名空間


getNoNamespace()

建立代表沒有實際命名空間的 Namespace

回攻員

Namespace:新建立的命名空間


getPrettyFormat()

建立 Format 物件,以輸出使用者可理解的 XML 文件。格式設定工具會預設為 UTF-8 編碼、每個節點後方的縮排和 \r\n 行分隔符,並包含 XML 宣告及其編碼。

// Log an XML document in human-readable form.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getPrettyFormat()
    .format(document);
Logger.log(output);

回攻員

Format:新建的格式設定工具


getRawFormat()

建立 Format 物件,用於輸出原始 XML 文件。格式設定工具預設為 UTF-8 編碼,不會縮排,而且除了 XML 文件本身提供的換行符號外,不會有換行符號,且包含 XML 宣告及其編碼。

// Log an XML document in raw form.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getRawFormat()
    .format(document);
Logger.log(output);

回攻員

Format:新建的格式設定工具


getXmlNamespace()

建立含有標準 xml 前置字串的 Namespace

回攻員

Namespace:新建立的命名空間


parse(xml)

不必驗證 XML,即可根據指定的 XML 建立 Document

var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var doc = XmlService.parse(xml);

參數

名稱類型說明
xmlString要剖析的 XML

回攻員

Document:新建的文件