Class XmlService

XmlService

Mit diesem Dienst können Skripts XML-Dokumente parsen, darin navigieren und sie programmatisch erstellen.

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

Properties

AttributTypBeschreibung
ContentTypesContentTypeEine Aufzählung, die die Typen von XML-Inhaltsknoten darstellt.

Methoden

MethodeRückgabetypKurzbeschreibung
createCdata(text)CdataErstellt einen nicht angehängten CDATASection-Knoten mit dem angegebenen Wert.
createComment(text)CommentErstellt einen nicht angehängten Comment-Knoten mit dem angegebenen Wert.
createDocType(elementName)DocTypeErstellt einen nicht angehängten DocumentType-Knoten für den Root-Knoten Element mit dem angegebenen Namen.
createDocType(elementName, systemId)DocTypeErstellt einen nicht angehängten DocumentType-Knoten für den Root-Element-Knoten mit dem angegebenen Namen und der angegebenen System-ID für die externen Subset-Daten.
createDocType(elementName, publicId, systemId)DocTypeErstellt einen nicht angehängten DocumentType-Knoten für den Element-Root-Knoten mit dem angegebenen Namen sowie der angegebenen öffentlichen ID und System-ID für die externen Subset-Daten.
createDocument()DocumentErstellt ein leeres XML-Dokument.
createDocument(rootElement)DocumentErstellt ein XML-Dokument mit dem angegebenen Element-Stammknoten.
createElement(name)ElementErstellt einen nicht angehängten Element-Knoten mit dem angegebenen lokalen Namen und ohne Namespace.
createElement(name, namespace)ElementErstellt einen nicht angehängten Element-Knoten mit dem angegebenen lokalen Namen und Namespace.
createText(text)TextErstellt einen nicht angehängten Text-Knoten mit dem angegebenen Wert.
getCompactFormat()FormatErstellt ein Format-Objekt für die Ausgabe eines kompakten XML-Dokuments.
getNamespace(uri)NamespaceErstellt ein Namespace-Objekt mit dem angegebenen URI.
getNamespace(prefix, uri)NamespaceErstellt ein Namespace-Objekt mit dem angegebenen Präfix und URI.
getNoNamespace()NamespaceErstellt ein Namespace, das das Fehlen eines echten Namespace darstellt.
getPrettyFormat()FormatErstellt ein Format-Objekt zum Ausgeben eines für Menschen lesbaren XML-Dokuments.
getRawFormat()FormatErstellt ein Format-Objekt für die Ausgabe eines Roh-XML-Dokuments.
getXmlNamespace()NamespaceErstellt ein Namespace mit dem Standardpräfix xml.
parse(xml)DocumentErstellt ein Document-Objekt aus dem angegebenen XML-Code, ohne den XML-Code zu validieren.

Detaillierte Dokumentation

createCdata(text)

Erstellt einen nicht angehängten CDATASection-Knoten mit dem angegebenen Wert.

Parameter

NameTypBeschreibung
textStringDer festzulegende Wert.

Rückflug

Cdata: Der neu erstellte CDATASection-Knoten.


createComment(text)

Erstellt einen nicht angehängten Comment-Knoten mit dem angegebenen Wert.

Parameter

NameTypBeschreibung
textStringDer festzulegende Wert.

Rückflug

Comment: Der neu erstellte Comment-Knoten.


createDocType(elementName)

Erstellt einen nicht angehängten DocumentType-Knoten für den Root-Knoten Element mit dem angegebenen Namen.

Parameter

NameTypBeschreibung
elementNameStringDer Name des Element-Stammknotens, der in der DocType-Deklaration angegeben werden muss.

Rückflug

DocType: Der neu erstellte DocumentType-Knoten.


createDocType(elementName, systemId)

Erstellt einen nicht angehängten DocumentType-Knoten für den Root-Element-Knoten mit dem angegebenen Namen und der angegebenen System-ID für die externen Subset-Daten.

Parameter

NameTypBeschreibung
elementNameStringDer Name des Element-Stammknotens, der in der DocType-Deklaration angegeben werden muss.
systemIdStringDie System-ID der externen Teilmengendaten, die festgelegt werden sollen.

Rückflug

DocType: Der neu erstellte DocumentType-Knoten.


createDocType(elementName, publicId, systemId)

Erstellt einen nicht angehängten DocumentType-Knoten für den Element-Root-Knoten mit dem angegebenen Namen sowie der angegebenen öffentlichen ID und System-ID für die externen Subset-Daten.

Parameter

NameTypBeschreibung
elementNameStringDer Name des Element-Stammknotens, der in der DocType-Deklaration angegeben werden muss.
publicIdStringDie öffentliche ID der festzulegenden externen Teilmengendaten.
systemIdStringDie System-ID der externen Teilmengendaten, die festgelegt werden sollen.

Rückflug

DocType: Der neu erstellte DocumentType-Knoten.


createDocument()

Erstellt ein leeres XML-Dokument.

Rückflug

Document: Das neu erstellte Dokument.


createDocument(rootElement)

Erstellt ein XML-Dokument mit dem angegebenen Element-Stammknoten.

Parameter

NameTypBeschreibung
rootElementElementDer festzulegende Element-Stammknoten.

Rückflug

Document: Das neu erstellte Dokument.


createElement(name)

Erstellt einen nicht angehängten Element-Knoten mit dem angegebenen lokalen Namen und ohne Namespace.

Parameter

NameTypBeschreibung
nameStringDer festzulegende lokale Name.

Rückflug

Element: Der neu erstellte Element-Knoten.


createElement(name, namespace)

Erstellt einen nicht angehängten Element-Knoten mit dem angegebenen lokalen Namen und Namespace.

Parameter

NameTypBeschreibung
nameStringDer festzulegende lokale Name.
namespaceNamespaceDer festzulegende Namespace.

Rückflug

Element: Der neu erstellte Element-Knoten.


createText(text)

Erstellt einen nicht angehängten Text-Knoten mit dem angegebenen Wert.

Parameter

NameTypBeschreibung
textStringDer festzulegende Wert.

Rückflug

Text: Der neu erstellte Text-Knoten.


getCompactFormat()

Erstellt ein Format-Objekt für die Ausgabe eines kompakten XML-Dokuments. Der Formatierer verwendet standardmäßig die UTF-8-Codierung, keine Einrückung und keine zusätzlichen Zeilenumbrüche, enthält aber die XML-Deklaration und ihre Codierung.

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

Rückflug

Format: Der neu erstellte Formatierer.


getNamespace(uri)

Erstellt ein Namespace-Objekt mit dem angegebenen URI.

Parameter

NameTypBeschreibung
uriStringDer URI für den Namespace.

Rückflug

Namespace: Der neu erstellte Namespace.


getNamespace(prefix, uri)

Erstellt ein Namespace-Objekt mit dem angegebenen Präfix und URI.

Parameter

NameTypBeschreibung
prefixStringDas Präfix für den Namespace.
uriStringDie URI für den Namespace.

Rückflug

Namespace: Der neu erstellte Namespace.


getNoNamespace()

Erstellt ein Namespace, das das Fehlen eines echten Namespace darstellt.

Rückflug

Namespace: Der neu erstellte Namespace.


getPrettyFormat()

Erstellt ein Format-Objekt zum Ausgeben eines für Menschen lesbaren XML-Dokuments. Der Formatierer verwendet standardmäßig die UTF-8-Codierung, Einrückungen mit zwei Leerzeichen, \r\n-Zeilentrennzeichen nach jedem Knoten und enthält die XML-Deklaration und ihre Codierung.

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

Rückflug

Format: Der neu erstellte Formatierer.


getRawFormat()

Erstellt ein Format-Objekt für die Ausgabe eines Roh-XML-Dokuments. Der Formatierer verwendet standardmäßig die UTF-8-Codierung, keine Einrückung und keine Zeilenumbrüche, die nicht im XML-Dokument selbst enthalten sind. Außerdem enthält er die XML-Deklaration und ihre Codierung.

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

Rückflug

Format: Der neu erstellte Formatierer.


getXmlNamespace()

Erstellt ein Namespace mit dem Standardpräfix xml.

Rückflug

Namespace: Der neu erstellte Namespace.


parse(xml)

Erstellt ein Document-Objekt aus dem angegebenen XML-Code, ohne den XML-Code zu validieren.

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

Parameter

NameTypBeschreibung
xmlStringDie zu parsende XML-Datei.

Rückflug

Document: Das neu erstellte Dokument.