Class XmlService

XmlService

Esse serviço permite que scripts analisem, naveguem e criem documentos XML de maneira programática.

// Log the title and labels for the first page of blog posts on the
// Google Workspace Developer blog.
function parseXml() {
  const url = 'https://gsuite-developers.googleblog.com/atom.xml';
  const xml = UrlFetchApp.fetch(url).getContentText();
  const document = XmlService.parse(xml);
  const root = document.getRootElement();
  const atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');

  const entries = root.getChildren('entry', atom);
  for (let i = 0; i < entries.length; i++) {
    const title = entries[i].getChild('title', atom).getText();
    const categoryElements = entries[i].getChildren('category', atom);
    const labels = [];
    for (let 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() {
  const root = XmlService.createElement('threads');
  const threads = GmailApp.getInboxThreads();
  for (let i = 0; i < threads.length; i++) {
    const child =
        XmlService.createElement('thread')
            .setAttribute('messageCount', threads[i].getMessageCount())
            .setAttribute('isUnread', threads[i].isUnread())
            .setText(threads[i].getFirstMessageSubject());
    root.addContent(child);
  }
  const document = XmlService.createDocument(root);
  const xml = XmlService.getPrettyFormat().format(document);
  Logger.log(xml);
}

Propriedades

PropriedadeTipoDescrição
ContentTypesContentTypeUma enumeração que representa os tipos de nós de conteúdo XML.

Métodos

MétodoTipo de retornoBreve descrição
createCdata(text)CdataCria um nó CDATASection não anexado com o valor especificado.
createComment(text)CommentCria um nó Comment não anexado com o valor especificado.
createDocType(elementName)DocTypeCria um nó DocumentType não anexado para o nó Element raiz com o nome fornecido.
createDocType(elementName, systemId)DocTypeCria um nó DocumentType não anexado para o nó Element raiz com o nome e o ID do sistema fornecido para os dados do subconjunto externo.
createDocType(elementName, publicId, systemId)DocTypeCria um nó DocumentType não anexado para o nó Element raiz com o nome fornecido, o ID público e o ID do sistema para os dados do subconjunto externo.
createDocument()DocumentCria um documento XML vazio.
createDocument(rootElement)DocumentCria um documento XML com o nó raiz Element especificado.
createElement(name)ElementCria um nó Element não anexado com o nome local especificado e sem namespace.
createElement(name, namespace)ElementCria um nó Element não anexado com o nome local e o namespace fornecidos.
createText(text)TextCria um nó Text não anexado com o valor especificado.
getCompactFormat()FormatCria um objeto Format para gerar um documento XML compacto.
getNamespace(uri)NamespaceCria um Namespace com o URI fornecido.
getNamespace(prefix, uri)NamespaceCria um Namespace com o prefixo e o URI especificados.
getNoNamespace()NamespaceCria um Namespace que representa a ausência de um namespace real.
getPrettyFormat()FormatCria um objeto Format para gerar um documento XML legível por humanos.
getRawFormat()FormatCria um objeto Format para gerar um documento XML bruto.
getXmlNamespace()NamespaceCria um Namespace com o prefixo padrão xml.
parse(xml)DocumentCria um Document a partir do XML fornecido, sem validar o XML.

Documentação detalhada

createCdata(text)

Cria um nó CDATASection não anexado com o valor especificado.

Parâmetros

NomeTipoDescrição
textStringo valor a ser definido

Retornar

Cdata: o nó CDATASection recém-criado


createComment(text)

Cria um nó Comment não anexado com o valor especificado.

Parâmetros

NomeTipoDescrição
textStringo valor a ser definido

Retornar

Comment: o nó Comment recém-criado


createDocType(elementName)

Cria um nó DocumentType não anexado para o nó Element raiz com o nome fornecido.

Parâmetros

NomeTipoDescrição
elementNameStringo nome do nó Element raiz a ser especificado na declaração DocType

Retornar

DocType: o nó DocumentType recém-criado


createDocType(elementName, systemId)

Cria um nó DocumentType não anexado para o nó Element raiz com o nome e o ID do sistema fornecido para os dados do subconjunto externo.

Parâmetros

NomeTipoDescrição
elementNameStringo nome do nó Element raiz a ser especificado na declaração DocType
systemIdStringo ID do sistema dos dados do subconjunto externo a serem definidos

Retornar

DocType: o nó DocumentType recém-criado


createDocType(elementName, publicId, systemId)

Cria um nó DocumentType não anexado para o nó Element raiz com o nome fornecido, o ID público e o ID do sistema para os dados do subconjunto externo.

Parâmetros

NomeTipoDescrição
elementNameStringo nome do nó Element raiz a ser especificado na declaração DocType
publicIdStringo ID público dos dados do subconjunto externo a serem definidos
systemIdStringo ID do sistema dos dados do subconjunto externo a serem definidos

Retornar

DocType: o nó DocumentType recém-criado


createDocument()

Cria um documento XML vazio.

Retornar

Document: o documento recém-criado


createDocument(rootElement)

Cria um documento XML com o nó raiz Element especificado.

Parâmetros

NomeTipoDescrição
rootElementElemento nó Element raiz a ser definido

Retornar

Document: o documento recém-criado


createElement(name)

Cria um nó Element não anexado com o nome local especificado e sem namespace.

Parâmetros

NomeTipoDescrição
nameStringo nome local a ser definido

Retornar

Element: o nó Element recém-criado


createElement(name, namespace)

Cria um nó Element não anexado com o nome local e o namespace fornecidos.

Parâmetros

NomeTipoDescrição
nameStringo nome local a ser definido
namespaceNamespaceo namespace a ser definido

Retornar

Element: o nó Element recém-criado


createText(text)

Cria um nó Text não anexado com o valor especificado.

Parâmetros

NomeTipoDescrição
textStringo valor a ser definido

Retornar

Text: o nó Text recém-criado


getCompactFormat()

Cria um objeto Format para gerar um documento XML compacto. O formatador usa a codificação UTF-8 como padrão, sem recuo e sem quebras de linha adicionais, mas inclui a declaração XML e a codificação.

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

Retornar

Format: o formatador recém-criado


getNamespace(uri)

Cria um Namespace com o URI fornecido.

Parâmetros

NomeTipoDescrição
uriStringo URI do namespace

Retornar

Namespace: o namespace recém-criado


getNamespace(prefix, uri)

Cria um Namespace com o prefixo e o URI especificados.

Parâmetros

NomeTipoDescrição
prefixStringo prefixo do namespace
uriStringo URI do namespace

Retornar

Namespace: o namespace recém-criado


getNoNamespace()

Cria um Namespace que representa a ausência de um namespace real.

Retornar

Namespace: o namespace recém-criado


getPrettyFormat()

Cria um objeto Format para gerar um documento XML legível por humanos. O formatador usa a codificação UTF-8, recuo de dois espaços, separadores de linha \r\n após cada nó e inclui a declaração XML e a codificação.

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

Retornar

Format: o formatador recém-criado


getRawFormat()

Cria um objeto Format para gerar um documento XML bruto. O formatador usa a codificação UTF-8 como padrão, sem recuo e sem quebras de linha, exceto as fornecidas no próprio documento XML, e inclui a declaração XML e a codificação.

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

Retornar

Format: o formatador recém-criado


getXmlNamespace()

Cria um Namespace com o prefixo padrão xml.

Retornar

Namespace: o namespace recém-criado


parse(xml)

Cria um Document a partir do XML fornecido, sem validar o XML.

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

Parâmetros

NomeTipoDescrição
xmlStringo XML a ser analisado

Retornar

Document: o documento recém-criado