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创建用于输出紧凑 XML 文档的 Format 对象。
getNamespace(uri)Namespace使用指定的 URI 创建 Namespace
getNamespace(prefix, uri)Namespace创建具有给定前缀和 URI 的 Namespace
getNoNamespace()Namespace创建一个表示不存在实际命名空间的 Namespace
getPrettyFormat()Format创建 Format 对象,用于输出直观易懂的 XML 文档。
getRawFormat()Format创建用于输出原始 XML 文档的 Format 对象。
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()

创建用于输出紧凑 XML 文档的 Format 对象。格式化程序 默认为 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()

创建用于输出原始 XML 文档的 Format 对象。格式化程序默认设置为 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 创建 Document,而不验证 XML。

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

参数

名称类型说明
xmlString要解析的 XML

返回

Document - 新创建的文档