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 muestraDescripción breve
createCdata(text)CdataCrea un nodo CDATASection sin adjuntar con el valor determinado.
createComment(text)CommentCrea un nodo Comment sin adjuntar con el valor determinado.
createDocType(elementName)DocTypeCrea un nodo DocumentType sin adjuntar para el nodo Element raíz con el nombre determinado.
createDocType(elementName, systemId)DocTypeCrea un nodo DocumentType no conectado para el nodo Element raíz con el nombre y el ID del sistema determinados para los datos del subconjunto externo.
createDocType(elementName, publicId, systemId)DocTypeCrea un nodo DocumentType no conectado para el nodo Element raíz con el nombre determinado, y el ID público y el ID del sistema para los datos del subconjunto externo.
createDocument()DocumentCrea un documento XML vacío.
createDocument(rootElement)DocumentCrea un documento XML con el nodo Element raíz determinado.
createElement(name)ElementCrea un nodo Element sin conectar con el nombre local especificado y sin espacio de nombres.
createElement(name, namespace)ElementCrea un nodo Element sin conectar con el nombre y el espacio de nombres locales especificados.
createText(text)TextCrea un nodo Text sin adjuntar con el valor determinado.
getCompactFormat()FormatCrea un objeto Format para generar un documento XML compacto.
getNamespace(uri)NamespaceCrea un Namespace con el URI especificado.
getNamespace(prefix, uri)NamespaceCrea un Namespace con el prefijo y el URI especificados.
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 sin adjuntar con el valor determinado.

Parámetros

NombreTipoDescripción
textStringel valor que se establecerá

Volver

Cdata: Es el nodo CDATASection recién creado.


createComment(text)

Crea un nodo Comment sin adjuntar con el valor determinado.

Parámetros

NombreTipoDescripción
textStringel valor que se establecerá

Volver

Comment: Es el nodo Comment recién creado.


createDocType(elementName)

Crea un nodo DocumentType sin adjuntar para el nodo Element raíz con el nombre determinado.

Parámetros

NombreTipoDescripción
elementNameStringel nombre 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 conectado para el nodo Element raíz con el nombre y el ID del sistema determinados para los datos del subconjunto externo.

Parámetros

NombreTipoDescripción
elementNameStringel nombre del nodo Element raíz que se especificará en la declaración DocType
systemIdStringel ID del sistema de los datos del subconjunto externo que se establecerán

Volver

DocType: Es el nodo DocumentType recién creado.


createDocType(elementName, publicId, systemId)

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

Parámetros

NombreTipoDescripción
elementNameStringel nombre del nodo Element raíz que se especificará en la declaración DocType
publicIdStringel ID público de los datos del subconjunto externo que se establecerán
systemIdStringel ID del sistema de los datos del subconjunto externo que se establecerán

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 Element raíz determinado.

Parámetros

NombreTipoDescripción
rootElementElementel nodo Element raíz que se establecerá

Volver

Document: Es el documento recién creado.


createElement(name)

Crea un nodo Element sin conectar con el nombre local especificado y sin espacio de nombres.

Parámetros

NombreTipoDescripción
nameStringel nombre local que se establecerá

Volver

Element: Es el nodo Element recién creado.


createElement(name, namespace)

Crea un nodo Element sin conectar con el nombre y el espacio de nombres locales especificados.

Parámetros

NombreTipoDescripción
nameStringel nombre local que se establecerá
namespaceNamespaceel espacio de nombres que se establecerá

Volver

Element: Es el nodo Element recién creado.


createText(text)

Crea un nodo Text sin adjuntar con el valor determinado.

Parámetros

NombreTipoDescripción
textStringel 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 formato usa de forma predeterminada la codificación UTF-8, sin sangría ni saltos de línea adicionales, pero 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 especificado.

Parámetros

NombreTipoDescripción
uriStringel 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 especificados.

Parámetros

NombreTipoDescripción
prefixStringel prefijo del espacio de nombres
uriStringel 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 formato usa de forma predeterminada la codificación UTF-8, la sangría de dos espacios, los separadores de líneas \r\n después de cada nodo y, además, incluye la declaración XML y 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 formato usa de forma predeterminada la codificación UTF-8, sin sangría ni saltos de línea, excepto los que se proporcionan en el documento en formato XML, y también 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
xmlStringel XML que se analizará

Volver

Document: Es el documento recién creado.