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 节点和外部子集数据创建给定系统 ID 的未连接 DocumentType 节点。
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 节点和外部子集数据创建给定系统 ID 的未连接 DocumentType 节点。

参数

名称类型说明
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 - 新创建的文档