XML Service
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 // Google's The Keyword blog. function parseXml() { let url = 'https://blog.google/rss/'; let xml = UrlFetchApp.fetch(url).getContentText(); let document = XmlService.parse(xml); let root = document.getRootElement(); let channel = root.getChild('channel'); let items = channel.getChildren('item'); items.forEach(item => { let title = item.getChild('title').getText(); let categories = item.getChildren('category'); let labels = categories.map(category => category.getText()); console.log('%s (%s)', title, labels.join(', ')); }); } // Create and log an XML representation of first 10 threads in your Gmail inbox. function createXml() { let root = XmlService.createElement('threads'); let threads = GmailApp.getInboxThreads() threads = threads.slice(0,10); // Just the first 10 threads.forEach(thread => { let child = XmlService.createElement('thread') .setAttribute('messageCount', thread.getMessageCount()) .setAttribute('isUnread', thread.isUnread()) .setText(thread.getFirstMessageSubject()); root.addContent(child); }); let document = XmlService.createDocument(root); let xml = XmlService.getPrettyFormat().format(document); console.log(xml); }
Classes
Name | Brief description |
---|---|
Attribute
|
A representation of an XML attribute. |
Cdata
|
A representation of an XML CDATASection
node. |
Comment
|
A representation of an XML Comment
node. |
Content
|
A representation of a generic XML node. |
ContentType
|
An enumeration representing the types of XML content nodes. |
DocType
|
A representation of an XML DocumentType
node. |
Document
|
A representation of an XML document. |
Element
|
A representation of an XML Element
node. |
EntityRef
|
A representation of an XML EntityReference
node. |
Format
|
A formatter for outputting an XML document, with three pre-defined formats that can be further customized. |
Namespace
|
A representation of an XML namespace. |
ProcessingInstruction
|
A representation of an XML ProcessingInstruction
node. |
Text
|
A representation of an XML Text
node. |
XmlService
|
This service allows scripts to parse, navigate, and programmatically create XML documents. |
Attribute
Methods
Method | Return type | Brief description |
---|---|---|
String
|
Gets the local name of the attribute. | |
Namespace
|
Gets the namespace for the attribute. | |
String
|
Gets the value of the attribute. | |
Attribute
|
Sets the local name of the attribute. | |
Attribute
|
Sets the namespace for the attribute. | |
Attribute
|
Sets the value of the attribute. |
Cdata
Methods
Method | Return type | Brief description |
---|---|---|
Text
|
Appends the given text to any content that already exists in the node. | |
Content
|
Detaches the node from its parent Element
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the text value of the Text
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. | |
Text
|
Sets the text value of the Text
node. |
Comment
Methods
Method | Return type | Brief description |
---|---|---|
Content
|
Detaches the node from its parent Element
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the text value of the Comment
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. | |
Comment
|
Sets the text value of the Comment
node. |
Content
Methods
Method | Return type | Brief description |
---|---|---|
Cdata
|
Casts the node as a CDATASection
node for the purposes of autocomplete. |
|
Comment
|
Casts the node as a Comment
node for the purposes of autocomplete. |
|
DocType
|
Casts the node as a DocumentType
node for the purposes of autocomplete. |
|
Element
|
Casts the node as an Element
node for the purposes of autocomplete. |
|
EntityRef
|
Casts the node as a EntityReference
node for the purposes of autocomplete. |
|
ProcessingInstruction
|
Casts the node as a ProcessingInstruction
node for the purposes of autocomplete. |
|
Text
|
Casts the node as a Text
node for the purposes of autocomplete. |
|
Content
|
Detaches the node from its parent Element
node. |
|
Element
|
Gets the node's parent Element
node. |
|
ContentType
|
Gets the node's content type. | |
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. |
ContentType
Properties
Property | Type | Description |
---|---|---|
CDATA
|
Enum
|
An XML CDATASection
node. |
COMMENT
|
Enum
|
An XML Comment
node. |
DOCTYPE
|
Enum
|
An XML DocumentType
node. |
ELEMENT
|
Enum
|
An XML Element
node. |
ENTITYREF
|
Enum
|
An XML EntityReference
node. |
PROCESSINGINSTRUCTION
|
Enum
|
An XML ProcessingInstruction
node. |
TEXT
|
Enum
|
An XML Text
node. |
DocType
Methods
Method | Return type | Brief description |
---|---|---|
Content
|
Detaches the node from its parent Element
node. |
|
String
|
Gets the name of the root Element
node specified in the DocType
declaration. |
|
String
|
Gets the internal subset data for the DocumentType
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the public ID of the external subset data for the DocumentType
node. |
|
String
|
Gets the system ID of the external subset data for the DocumentType
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. | |
DocType
|
Sets the name of the root Element
node to specify in the DocType
declaration. |
|
DocType
|
Sets the internal subset data for the DocumentType
node. |
|
DocType
|
Sets the public ID of the external subset data for the DocumentType
node. |
|
DocType
|
Sets the system ID of the external subset data for the DocumentType
node. |
Document
Methods
Method | Return type | Brief description |
---|---|---|
Document
|
Appends the given node to the end of the document. | |
Document
|
Inserts the given node at the given index among all nodes that are immediate children of the document. | |
Content[]
|
Creates unattached copies of all nodes that are immediate children of the document. | |
Element
|
Detaches and returns the document's root Element
node. |
|
Content[]
|
Gets all nodes that are immediate children of the document. | |
Content
|
Gets the node at the given index among all nodes that are immediate children of the document. | |
Integer
|
Gets the number of nodes that are immediate children of the document. | |
Content[]
|
Gets all nodes that are direct or indirect children of the document, in the order they appear in the document. | |
DocType
|
Gets the document's DocType
declaration. |
|
Element
|
Gets the document's root Element
node. |
|
Boolean
|
Determines whether the document has a root Element
node. |
|
Content[]
|
Removes all nodes that are immediate children of the document. | |
Boolean
|
Removes the given node, if the node is an immediate child of the document. | |
Content
|
Removes the node at the given index among all nodes that are immediate children of the document. | |
Document
|
Sets the document's DocType
declaration. |
|
Document
|
Sets the document's root Element
node. |
Element
Methods
Method | Return type | Brief description |
---|---|---|
Element
|
Appends the given node as the last child of the Element
node. |
|
Element
|
Inserts the given node at the given index among all nodes that are immediate children of the Element
node. |
|
Content[]
|
Creates unattached copies of all nodes that are immediate children of the {@code Element} node. | |
Content
|
Detaches the node from its parent Element
node. |
|
Content[]
|
Gets all nodes that are immediate children of the {@code Element} node. | |
Attribute
|
Gets the attribute for this Element
node with the given name and no namespace. |
|
Attribute
|
Gets the attribute for this Element
node with the given name and namespace. |
|
Attribute[]
|
Gets all attributes for this Element
node, in the order they appear in the document. |
|
Element
|
Gets the first Element
node with the given name and no namespace that is an immediate
child of this Element
node. |
|
Element
|
Gets the first Element
node with the given name and namespace that is an immediate
child of this Element
node. |
|
String
|
Gets the text value of the node with the given name and no namespace, if the node is an
immediate child of the Element
node. |
|
String
|
Gets the text value of the node with the given name and namespace, if the node is an immediate
child of the Element
node. |
|
Element[]
|
Gets all Element
nodes that are immediate children of this Element
node, in the
order they appear in the document. |
|
Element[]
|
Gets all Element
nodes with the given name and no namespace that are immediate children
of this Element
node, in the order they appear in the document. |
|
Element[]
|
Gets all Element
nodes with the given name and namespace that are immediate children of
this Element
node, in the order they appear in the document. |
|
Content
|
Gets the node at the given index among all nodes that are immediate children of the {@code Element} node. | |
Integer
|
Gets the number of nodes that are immediate children of the {@code Element} node. | |
Content[]
|
Gets all nodes that are direct or indirect children of the {@code Element} node, in the order they appear in the document. | |
Document
|
Gets the XML document that contains the {@code Element} node. | |
String
|
Gets the local name of the Element
node. |
|
Namespace
|
Gets the namespace for the Element
node. |
|
Namespace
|
Gets the namespace with the given prefix for the Element
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the local name and namespace prefix of the Element
node, in the form [namespacePrefix]:[localName]
. |
|
String
|
Gets the text value of the Element
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. | |
Boolean
|
Determines whether this Element
node is a direct or indirect parent of a given Element
node. |
|
Boolean
|
Determines whether the Element
node is the document's root node. |
|
Boolean
|
Removes the given attribute for this Element
node, if such an attribute exists. |
|
Boolean
|
Removes the attribute for this Element
node with the given name and no namespace, if
such an attribute exists. |
|
Boolean
|
Removes the attribute for this Element
node with the given name and namespace, if such
an attribute exists. |
|
Content[]
|
Removes all nodes that are immediate children of the {@code Element} node. | |
Boolean
|
Removes the given node, if the node is an immediate child of the {@code Element} node. | |
Content
|
Removes the node at the given index among all nodes that are immediate children of the {@code Element} node. | |
Element
|
Sets the given attribute for this Element
node. |
|
Element
|
Sets the attribute for this Element
node with the given name, value, and no namespace. |
|
Element
|
Sets the attribute for this Element
node with the given name, value, and namespace. |
|
Element
|
Sets the local name of the Element
node. |
|
Element
|
Sets the namespace for the Element
node. |
|
Element
|
Sets the text value of the Element
node. |
EntityRef
Methods
Method | Return type | Brief description |
---|---|---|
Content
|
Detaches the node from its parent Element
node. |
|
String
|
Gets the name of the EntityReference
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the public ID of the EntityReference
node. |
|
String
|
Gets the system ID of the EntityReference
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. | |
EntityRef
|
Sets the name of the EntityReference
node. |
|
EntityRef
|
Sets the public ID of the EntityReference
node. |
|
EntityRef
|
Sets the system ID of the EntityReference
node. |
Format
Methods
Method | Return type | Brief description |
---|---|---|
String
|
Outputs the given Document
as a formatted string. |
|
String
|
Outputs the given Element
node as a formatted string. |
|
Format
|
Sets the character encoding that the formatter should use. | |
Format
|
Sets the string used to indent child nodes relative to their parents. | |
Format
|
Sets the string to insert whenever the formatter would normally insert a line break. | |
Format
|
Sets whether the formatter should omit the XML declaration, such as <?xml version="1.0"
encoding="UTF-8"?>
. |
|
Format
|
Sets whether the formatter should omit the encoding in the XML declaration, such as the
encoding field in <?xml version="1.0" encoding="UTF-8"?>
. |
Namespace
Methods
Method | Return type | Brief description |
---|---|---|
String
|
Gets the prefix for the namespace. | |
String
|
Gets the URI for the namespace. |
ProcessingInstruction
Methods
Method | Return type | Brief description |
---|---|---|
Content
|
Detaches the node from its parent Element
node. |
|
String
|
Gets the raw data for every instruction in the ProcessingInstruction
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the target for the ProcessingInstruction
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. |
Text
Methods
Method | Return type | Brief description |
---|---|---|
Text
|
Appends the given text to any content that already exists in the node. | |
Content
|
Detaches the node from its parent Element
node. |
|
Element
|
Gets the node's parent Element
node. |
|
String
|
Gets the text value of the Text
node. |
|
String
|
Gets the text value of all nodes that are direct or indirect children of the node, in the order they appear in the document. | |
Text
|
Sets the text value of the Text
node. |
XmlService
Properties
Property | Type | Description |
---|---|---|
ContentTypes
|
ContentType
|
An enumeration representing the types of XML content nodes. |
Methods
Method | Return type | Brief description |
---|---|---|
Cdata
|
Creates an unattached CDATASection
node with the given value. |
|
Comment
|
Creates an unattached Comment
node with the given value. |
|
DocType
|
Creates an unattached DocumentType
node for the root Element
node
with the given name. |
|
DocType
|
Creates an unattached DocumentType
node for the root Element
node
with the given name, and the given system ID for the external subset data. |
|
DocType
|
Creates an unattached DocumentType
node for the root Element
node
with the given name, and the given public ID and system ID for the external subset data. |
|
Document
|
Creates an empty XML document. | |
Document
|
Creates an XML document with the given root Element
node. |
|
Element
|
Creates an unattached Element
node with the given local name and no namespace. |
|
Element
|
Creates an unattached Element
node with the given local name and namespace. |
|
Text
|
Creates an unattached Text
node with the given value. |
|
Format
|
Creates a Format
object for outputting a compact XML document. |
|
Namespace
|
Creates a Namespace
with the given URI. |
|
Namespace
|
Creates a Namespace
with the given prefix and URI. |
|
Namespace
|
Creates a Namespace
that represents the absence of a real namespace. |
|
Format
|
Creates a Format
object for outputting a human-readable XML document. |
|
Format
|
Creates a Format
object for outputting a raw XML document. |
|
Namespace
|
Creates a Namespace
with the standard xml
prefix. |
|
Document
|
Creates an Document
from the given XML, without validating the XML. |