Class XmlService Stay organized with collections Save and categorize content based on your preferences.
Page Summary
The XmlService allows scripts to parse, navigate, and programmatically create XML documents.
It provides methods to create various XML nodes such as CDATA, Comments, DocTypes, Elements, and Text.
You can create empty XML documents or documents with a specified root element.
The service offers different formatting options (Compact, Pretty, Raw) for outputting XML documents.
You can parse existing XML strings into a Document object for manipulation.
This service allows scripts to parse, navigate, and programmatically create XML documents.
// Log the title and labels for the first page of blog posts on the// Google Workspace Developer blog.functionparseXml(){consturl='https://gsuite-developers.googleblog.com/atom.xml';constxml=UrlFetchApp.fetch(url).getContentText();constdocument=XmlService.parse(xml);constroot=document.getRootElement();constatom=XmlService.getNamespace('http://www.w3.org/2005/Atom');constentries=root.getChildren('entry',atom);for(leti=0;i <entries.length;i++){consttitle=entries[i].getChild('title',atom).getText();constcategoryElements=entries[i].getChildren('category',atom);constlabels=[];for(letj=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.functioncreateXml(){constroot=XmlService.createElement('threads');constthreads=GmailApp.getInboxThreads();for(leti=0;i <threads.length;i++){constchild=XmlService.createElement('thread').setAttribute('messageCount',threads[i].getMessageCount()).setAttribute('isUnread',threads[i].isUnread()).setText(threads[i].getFirstMessageSubject());root.addContent(child);}constdocument=XmlService.createDocument(root);constxml=XmlService.getPrettyFormat().format(document);Logger.log(xml);}
Properties
| Property | Type | Description |
|---|---|---|
Content | Content | An enumeration representing the types of XML content nodes. |
Methods
| Method | Return type | Brief description |
|---|---|---|
create | Cdata | Creates an unattachedCDATASection node with the given value. |
create | Comment | Creates an unattachedComment node with the given value. |
create | Doc | Creates an unattachedDocument node for the rootElement nodewith the given name. |
create | Doc | Creates an unattachedDocument node for the rootElement nodewith the given name, and the given system ID for the external subset data. |
create | Doc | Creates an unattachedDocument node for the rootElement nodewith the given name, and the given public ID and system ID for the external subset data. |
create | Document | Creates an empty XML document. |
create | Document | Creates an XML document with the given rootElement node. |
create | Element | Creates an unattachedElement node with the given local name and no namespace. |
create | Element | Creates an unattachedElement node with the given local name and namespace. |
create | Text | Creates an unattachedText node with the given value. |
get | Format | Creates aFormat object for outputting a compact XML document. |
get | Namespace | Creates aNamespace with the given URI. |
get | Namespace | Creates aNamespace with the given prefix and URI. |
get | Namespace | Creates aNamespace that represents the absence of a real namespace. |
get | Format | Creates aFormat object for outputting a human-readable XML document. |
get | Format | Creates aFormat object for outputting a raw XML document. |
get | Namespace | Creates aNamespace with the standardxml prefix. |
parse(xml) | Document | Creates anDocument from the given XML, without validating the XML. |
Detailed documentation
createCdata(text)
Creates an unattachedCDATASection node with the given value.
Parameters
| Name | Type | Description |
|---|---|---|
text | String | the value to set |
Return
Cdata — the newly createdCDATASection node
createComment(text)
createDocType(elementName)
Creates an unattachedDocument node for the rootElement nodewith the given name.
Parameters
| Name | Type | Description |
|---|---|---|
element | String | the name of the rootElement node to specify in theDoc declaration |
Return
Doc — the newly createdDocument node
createDocType(elementName, systemId)
Creates an unattachedDocument node for the rootElement nodewith the given name, and the given system ID for the external subset data.
Parameters
| Name | Type | Description |
|---|---|---|
element | String | the name of the rootElement node to specify in theDoc declaration |
system | String | the system ID of the external subset data to set |
Return
Doc — the newly createdDocument node
createDocType(elementName, publicId, systemId)
Creates an unattachedDocument node for the rootElement nodewith the given name, and the given public ID and system ID for the external subset data.
Parameters
| Name | Type | Description |
|---|---|---|
element | String | the name of the rootElement node to specify in theDoc declaration |
public | String | the public ID of the external subset data to set |
system | String | the system ID of the external subset data to set |
Return
Doc — the newly createdDocument node
createDocument()
createDocument(rootElement)
createElement(name)
createElement(name, namespace)
createText(text)
getCompactFormat()
Creates aFormat object for outputting a compact XML document. The formatterdefaults toUTF-8 encoding, no indentation, and no additional line breaks, but includesthe XML declaration and its encoding.
// Log an XML document in compact form.constxml='<root><a><b>Text!</b><b>More text!</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getCompactFormat().format(document);Logger.log(output);
Return
Format — the newly created formatter
getNamespace(uri)
getNamespace(prefix, uri)
getNoNamespace()
getPrettyFormat()
Creates aFormat object for outputting a human-readable XML document. The formatterdefaults toUTF-8 encoding, two-space indentation,\r\n line separators afterevery node, and includes the XML declaration and its encoding.
// Log an XML document in human-readable form.constxml='<root><a><b>Text!</b><b>More text!</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getPrettyFormat().format(document);Logger.log(output);
Return
Format — the newly created formatter
getRawFormat()
Creates aFormat object for outputting a raw XML document. The formatter defaults toUTF-8 encoding, no indentation and no line breaks other than those provided in the XMLdocument itself, and includes the XML declaration and its encoding.
// Log an XML document in raw form.constxml='<root><a><b>Text!</b><b>More text!</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getRawFormat().format(document);Logger.log(output);
Return
Format — the newly created formatter
getXmlNamespace()
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-11 UTC.