XML Service | Apps Script | Google for Developers (original) (raw)
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](/apps-script/reference/xml-service/attribute)
[Cdata](/apps-script/reference/xml-service/cdata)
[Content](/apps-script/reference/xml-service/content)
[ContentType](/apps-script/reference/xml-service/content-type)
[DocType](/apps-script/reference/xml-service/doc-type)
[Document](/apps-script/reference/xml-service/document)
[Element](/apps-script/reference/xml-service/element)
Methods
Method | Return type | Brief description |
---|---|---|
addContent(content) | Element | Appends the given node as the last child of the Element node. |
addContent(index, content) | Element | Inserts the given node at the given index among all nodes that are immediate children of theElement node. |
cloneContent() | Content[] | Creates unattached copies of all nodes that are immediate children of the {@code Element} node. |
detach() | Content | Detaches the node from its parent Element node. |
getAllContent() | Content[] | Gets all nodes that are immediate children of the {@code Element} node. |
getAttribute(name) | Attribute | Gets the attribute for this Element node with the given name and no namespace. |
getAttribute(name, namespace) | Attribute | Gets the attribute for this Element node with the given name and namespace. |
getAttributes() | Attribute[] | Gets all attributes for this Element node, in the order they appear in the document. |
getChild(name) | Element | Gets the first Element node with the given name and no namespace that is an immediate child of this Element node. |
getChild(name, namespace) | Element | Gets the first Element node with the given name and namespace that is an immediate child of this Element node. |
getChildText(name) | 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. |
getChildText(name, namespace) | 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. |
getChildren() | Element[] | Gets all Element nodes that are immediate children of this Element node, in the order they appear in the document. |
getChildren(name) | 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. |
getChildren(name, namespace) | 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. |
getContent(index) | Content | Gets the node at the given index among all nodes that are immediate children of the {@code Element} node. |
getContentSize() | Integer | Gets the number of nodes that are immediate children of the {@code Element} node. |
getDescendants() | Content[] | Gets all nodes that are direct or indirect children of the {@code Element} node, in the order they appear in the document. |
getDocument() | Document | Gets the XML document that contains the {@code Element} node. |
getName() | String | Gets the local name of the Element node. |
getNamespace() | Namespace | Gets the namespace for the Element node. |
getNamespace(prefix) | Namespace | Gets the namespace with the given prefix for the Element node. |
getParentElement() | Element | Gets the node's parent Element node. |
getQualifiedName() | String | Gets the local name and namespace prefix of the Element node, in the form [namespacePrefix]:[localName]. |
getText() | String | Gets the text value of the Element node. |
getValue() | 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. |
isAncestorOf(other) | Boolean | Determines whether this Element node is a direct or indirect parent of a given Element node. |
isRootElement() | Boolean | Determines whether the Element node is the document's root node. |
removeAttribute(attribute) | Boolean | Removes the given attribute for this Element node, if such an attribute exists. |
removeAttribute(attributeName) | Boolean | Removes the attribute for this Element node with the given name and no namespace, if such an attribute exists. |
removeAttribute(attributeName, namespace) | Boolean | Removes the attribute for this Element node with the given name and namespace, if such an attribute exists. |
removeContent() | Content[] | Removes all nodes that are immediate children of the {@code Element} node. |
removeContent(content) | Boolean | Removes the given node, if the node is an immediate child of the {@code Element} node. |
removeContent(index) | Content | Removes the node at the given index among all nodes that are immediate children of the {@code Element} node. |
setAttribute(attribute) | Element | Sets the given attribute for this Element node. |
setAttribute(name, value) | Element | Sets the attribute for this Element node with the given name, value, and no namespace. |
setAttribute(name, value, namespace) | Element | Sets the attribute for this Element node with the given name, value, and namespace. |
setName(name) | Element | Sets the local name of the Element node. |
setNamespace(namespace) | Element | Sets the namespace for the Element node. |
setText(text) | Element | Sets the text value of the Element node. |
[EntityRef](/apps-script/reference/xml-service/entity-ref)
[Format](/apps-script/reference/xml-service/format)
[Namespace](/apps-script/reference/xml-service/namespace)
Methods
Method | Return type | Brief description |
---|---|---|
getPrefix() | String | Gets the prefix for the namespace. |
getURI() | String | Gets the URI for the namespace. |
[ProcessingInstruction](/apps-script/reference/xml-service/processing-instruction)
Methods
Method | Return type | Brief description |
---|---|---|
detach() | Content | Detaches the node from its parent Element node. |
getData() | String | Gets the raw data for every instruction in the ProcessingInstruction node. |
getParentElement() | Element | Gets the node's parent Element node. |
getTarget() | String | Gets the target for the ProcessingInstruction node. |
getValue() | 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. |