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 节点以及未包含外部子集数据的给定公共 ID 和系统 ID 创建未附加的 DocumentType 节点。
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 节点(具有给定名称)和给定系统 ID(用于外部子集数据)创建一个未附加的 DocumentType 节点。

参数

名称类型说明
elementNameString需要在 DocType 声明中指定的根 Element 节点的名称
systemIdString要设置的外部子集数据的系统 ID

返回

DocType - 新创建的 DocumentType 节点


createDocType(elementName, publicId, systemId)

为具有指定名称的根 Element 节点以及未包含外部子集数据的给定公共 ID 和系统 ID 创建未附加的 DocumentType 节点。

参数

名称类型说明
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 创建 Document,无需验证 XML。

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

参数

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

返回

Document - 新创建的文档