Class XmlService

XmlService

Este servicio permite que las secuencias de comandos analicen, naveguen y creen documentos XML de forma 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);
}

Propiedades

PropiedadTipoDescripción
ContentTypesContentTypeEs una enumeración que representa los tipos de nodos de contenido XML.

Métodos

MétodoTipo de datos que se devuelveDescripción breve
createCdata(text)CdataCrea un nodo CDATASection no adjunto con el valor determinado.
createComment(text)CommentCrea un nodo Comment no adjunto con el valor determinado.
createDocType(elementName)DocTypeCrea un nodo DocumentType no adjunto para el nodo raíz Element con el nombre determinado.
createDocType(elementName, systemId)DocTypeCrea un nodo DocumentType no adjunto para el nodo Element raíz con el nombre determinado y el ID del sistema determinado para los datos del subconjunto externo.
createDocType(elementName, publicId, systemId)DocTypeCrea un nodo DocumentType no adjunto para el nodo Element raíz con el nombre determinado, y el ID público y el ID del sistema determinados para los datos del subconjunto externo.
createDocument()DocumentCrea un documento XML vacío.
createDocument(rootElement)DocumentCrea un documento XML con el nodo raíz Element determinado.
createElement(name)ElementCrea un nodo Element no adjunto con el nombre local determinado y sin espacio de nombres.
createElement(name, namespace)ElementCrea un nodo Element no adjunto con el nombre local y el espacio de nombres determinados.
createText(text)TextCrea un nodo Text no adjunto con el valor determinado.
getCompactFormat()FormatCrea un objeto Format para generar un documento XML compacto.
getNamespace(uri)NamespaceCrea un Namespace con el URI determinado.
getNamespace(prefix, uri)NamespaceCrea un Namespace con el prefijo y el URI determinados.
getNoNamespace()NamespaceCrea un Namespace que representa la ausencia de un espacio de nombres real.
getPrettyFormat()FormatCrea un objeto Format para generar un documento XML legible por humanos.
getRawFormat()FormatCrea un objeto Format para generar un documento XML sin procesar.
getXmlNamespace()NamespaceCrea un Namespace con el prefijo xml estándar.
parse(xml)DocumentCrea un Document a partir del XML proporcionado, sin validar el XML.

Documentación detallada

createCdata(text)

Crea un nodo CDATASection no adjunto con el valor determinado.

Parámetros

NombreTipoDescripción
textStringEs el valor que se establecerá.

Volver

Cdata: Es el nodo CDATASection recién creado.


createComment(text)

Crea un nodo Comment no adjunto con el valor determinado.

Parámetros

NombreTipoDescripción
textStringEs el valor que se establecerá.

Volver

Comment: Es el nodo Comment recién creado.


createDocType(elementName)

Crea un nodo DocumentType no adjunto para el nodo raíz Element con el nombre determinado.

Parámetros

NombreTipoDescripción
elementNameStringNombre del nodo Element raíz que se especificará en la declaración DocType.

Volver

DocType: Es el nodo DocumentType recién creado.


createDocType(elementName, systemId)

Crea un nodo DocumentType no adjunto para el nodo Element raíz con el nombre determinado y el ID del sistema determinado para los datos del subconjunto externo.

Parámetros

NombreTipoDescripción
elementNameStringNombre del nodo Element raíz que se especificará en la declaración DocType.
systemIdStringEs el ID del sistema de los datos del subconjunto externo que se configurará.

Volver

DocType: Es el nodo DocumentType recién creado.


createDocType(elementName, publicId, systemId)

Crea un nodo DocumentType no adjunto para el nodo Element raíz con el nombre determinado, y el ID público y el ID del sistema determinados para los datos del subconjunto externo.

Parámetros

NombreTipoDescripción
elementNameStringNombre del nodo Element raíz que se especificará en la declaración DocType.
publicIdStringEs el ID público de los datos del subconjunto externo que se configurará.
systemIdStringEs el ID del sistema de los datos del subconjunto externo que se configurará.

Volver

DocType: Es el nodo DocumentType recién creado.


createDocument()

Crea un documento XML vacío.

Volver

Document: Es el documento recién creado.


createDocument(rootElement)

Crea un documento XML con el nodo raíz Element determinado.

Parámetros

NombreTipoDescripción
rootElementElementEs el nodo raíz Element que se establecerá.

Volver

Document: Es el documento recién creado.


createElement(name)

Crea un nodo Element no adjunto con el nombre local determinado y sin espacio de nombres.

Parámetros

NombreTipoDescripción
nameStringEs el nombre local que se establecerá.

Volver

Element: Es el nodo Element recién creado.


createElement(name, namespace)

Crea un nodo Element no adjunto con el nombre local y el espacio de nombres determinados.

Parámetros

NombreTipoDescripción
nameStringEs el nombre local que se establecerá.
namespaceNamespaceEs el espacio de nombres que se establecerá.

Volver

Element: Es el nodo Element recién creado.


createText(text)

Crea un nodo Text no adjunto con el valor determinado.

Parámetros

NombreTipoDescripción
textStringEs el valor que se establecerá.

Volver

Text: Es el nodo Text recién creado.


getCompactFormat()

Crea un objeto Format para generar un documento XML compacto. El formateador usa la codificación UTF-8 de forma predeterminada, no incluye sangría ni saltos de línea adicionales, pero sí incluye la declaración XML y su codificación.

// 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);

Volver

Format: Es el formateador recién creado.


getNamespace(uri)

Crea un Namespace con el URI determinado.

Parámetros

NombreTipoDescripción
uriStringEs el URI del espacio de nombres.

Volver

Namespace: Es el espacio de nombres recién creado.


getNamespace(prefix, uri)

Crea un Namespace con el prefijo y el URI determinados.

Parámetros

NombreTipoDescripción
prefixStringEs el prefijo del espacio de nombres.
uriStringEs el URI del espacio de nombres.

Volver

Namespace: Es el espacio de nombres recién creado.


getNoNamespace()

Crea un Namespace que representa la ausencia de un espacio de nombres real.

Volver

Namespace: Es el espacio de nombres recién creado.


getPrettyFormat()

Crea un objeto Format para generar un documento XML legible por humanos. El formateador usa de forma predeterminada la codificación UTF-8, la sangría de dos espacios, los separadores de línea \r\n después de cada nodo y la declaración XML con su codificación.

// 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);

Volver

Format: Es el formateador recién creado.


getRawFormat()

Crea un objeto Format para generar un documento XML sin procesar. El formateador usa la codificación UTF-8 de forma predeterminada, no incluye sangría ni saltos de línea, excepto los que se proporcionan en el documento XML, y sí incluye la declaración XML y su codificación.

// 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);

Volver

Format: Es el formateador recién creado.


getXmlNamespace()

Crea un Namespace con el prefijo xml estándar.

Volver

Namespace: Es el espacio de nombres recién creado.


parse(xml)

Crea un Document a partir del XML proporcionado, sin validar el XML.

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

Parámetros

NombreTipoDescripción
xmlStringEs el XML que se analizará.

Volver

Document: Es el documento recién creado.