XML Service

XML 服务

该服务允许脚本解析、导航和以编程方式创建 XML 文档。

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

名称简介
AttributeXML 属性的表示形式。
CdataXML CDATASection 节点的表示形式。
CommentXML Comment 节点的表示形式。
Content通用 XML 节点的表示形式。
ContentType表示 XML 内容节点类型的枚举。
DocTypeXML DocumentType 节点的表示形式。
DocumentXML 文档的表示形式。
ElementXML Element 节点的表示形式。
EntityRefXML EntityReference 节点的表示形式。
Format用于输出 XML 文档的格式设置工具,具有三种 。
NamespaceXML 命名空间的表示形式。
ProcessingInstructionXML ProcessingInstruction 节点的表示形式。
TextXML Text 节点的表示形式。
XmlService此服务允许脚本解析、导航和以编程方式创建 XML 文档。

Attribute

方法

方法返回类型简介
getName()String获取属性的本地名称。
getNamespace()Namespace获取属性的命名空间。
getValue()String获取属性的值。
setName(name)Attribute设置属性的本地名称。
setNamespace(namespace)Attribute设置属性的命名空间。
setValue(value)Attribute设置属性的值。

Cdata

方法

方法返回类型简介
append(text)Text将给定文本附加到节点中已存在的任何内容。
detach()Content将该节点与其父级 Element 节点分离。
getParentElement()Element获取节点的父 Element 节点。
getText()String获取 Text 节点的文本值。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中
setText(text)Text设置 Text 节点的文本值。

Comment

方法

方法返回类型简介
detach()Content将该节点与其父级 Element 节点分离。
getParentElement()Element获取节点的父 Element 节点。
getText()String获取 Comment 节点的文本值。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中
setText(text)Comment设置 Comment 节点的文本值。

Content

方法

方法返回类型简介
asCdata()Cdata将节点转换为 CDATASection 节点以实现自动补全。
asComment()Comment将节点转换为 Comment 节点,以实现自动补全。
asDocType()DocType将节点转换为 DocumentType 节点,以实现自动补全。
asElement()Element将节点转换为 Element 节点以实现自动补全。
asEntityRef()EntityRef将节点转换为 EntityReference 节点以实现自动补全。
asProcessingInstruction()ProcessingInstruction将节点转换为 ProcessingInstruction 节点以实现自动补全。
asText()Text将节点转换为 Text 节点,以实现自动补全。
detach()Content将该节点与其父级 Element 节点分离。
getParentElement()Element获取节点的父 Element 节点。
getType()ContentType获取节点的内容类型。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中

ContentType

属性

属性类型说明
CDATAEnumXML CDATASection 节点。
COMMENTEnumXML Comment 节点。
DOCTYPEEnumXML DocumentType 节点。
ELEMENTEnumXML Element 节点。
ENTITYREFEnumXML EntityReference 节点。
PROCESSINGINSTRUCTIONEnumXML ProcessingInstruction 节点。
TEXTEnumXML Text 节点。

DocType

方法

方法返回类型简介
detach()Content将该节点与其父级 Element 节点分离。
getElementName()String获取 DocType 声明中指定的根 Element 节点的名称。
getInternalSubset()String获取 DocumentType 节点的内部子集数据。
getParentElement()Element获取节点的父 Element 节点。
getPublicId()String获取 DocumentType 节点的外部子集数据的公共 ID。
getSystemId()String获取 DocumentType 节点的外部子集数据的系统 ID。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中
setElementName(name)DocType设置要在 DocType 中指定的根 Element 节点的名称 声明。
setInternalSubset(data)DocType设置 DocumentType 节点的内部子集数据。
setPublicId(id)DocTypeDocumentType 节点设置外部子集数据的公共 ID。
setSystemId(id)DocType设置 DocumentType 节点的外部子集数据的系统 ID。

Document

方法

方法返回类型简介
addContent(content)Document将指定节点附加到文档末尾。
addContent(index, content)Document在作为 文档。
cloneContent()Content[]为所有属于文档的直接子节点的节点创建未附加的副本。
detachRootElement()Element分离并返回文档的根 Element 节点。
getAllContent()Content[]获取作为文档直接子项的所有节点。
getContent(index)Content获取作为指定索引的所有节点的直接子节点, 文档。
getContentSize()Integer获取作为文档的直接子项的节点数。
getDescendants()Content[]获取作为文档的直接或间接子节点的所有节点(按照节点的顺序排列) 。
getDocType()DocType获取文档的 DocType 声明。
getRootElement()Element获取文档的根 Element 节点。
hasRootElement()Boolean确定文档是否具有 Element 根节点。
removeContent()Content[]移除作为文档直接子项的所有节点。
removeContent(content)Boolean移除指定节点(如果该节点是文档的直接子节点)。
removeContent(index)Content从作为指定索引的所有节点的直接子节点中删除给定索引处的节点 文档。
setDocType(docType)Document设置文档的 DocType 声明。
setRootElement(element)Document设置文档的根 Element 节点。

Element

方法

方法返回类型简介
addContent(content)Element将指定节点附加为 Element 节点的最后一个子节点。
addContent(index, content)Element在作为 Element 节点。
cloneContent()Content[]为所有属于 {@code Element} 节点的直接子节点的节点创建未附加的副本。
detach()Content将该节点与其父级 Element 节点分离。
getAllContent()Content[]获取作为 {@code Element} 节点的直接子节点的所有节点。
getAttribute(name)Attribute获取具有指定名称但无命名空间的 Element 节点的属性。
getAttribute(name, namespace)Attribute获取具有指定名称和命名空间的此 Element 节点的属性。
getAttributes()Attribute[]获取此 Element 节点的所有属性(按照属性在文档中的出现顺序)。
getChild(name)Element获取具有指定名称但无直接命名空间的第一个 Element 节点 该 Element 节点的子级。
getChild(name, namespace)Element获取具有指定名称和命名空间的第一个 Element 节点 该 Element 节点的子级。
getChildText(name)String获取具有指定名称、没有命名空间的节点的文本值(如果该节点是 Element 节点的直接子节点。
getChildText(name, namespace)String如果节点是直接节点,则获取具有指定名称和命名空间的节点的文本值 Element 节点的子级。
getChildren()Element[]获取作为此 Element 节点的直接子节点(在Element 它们在文档中出现的顺序。
getChildren(name)Element[]获取具有指定名称但不含直接子项的命名空间的所有 Element 节点 此 Element 节点的节点(按在文档中显示的顺序排列)。
getChildren(name, namespace)Element[]获取具有指定名称和命名空间、是以下对象的直接子节点的所有 Element 个节点 此 Element 节点(按在文档中显示的顺序排列)。
getContent(index)Content获取作为指定索引的所有节点的直接子节点, {@code Element} 节点。
getContentSize()Integer获取属于 {@code Element} 节点的直接子节点的节点数。
getDescendants()Content[]获取作为 {@code Element} 节点的直接或间接子节点的所有节点(按节点顺序排列) 。
getDocument()Document获取包含 {@code Element} 节点的 XML 文档。
getName()String获取 Element 节点的本地名称。
getNamespace()Namespace获取 Element 节点的命名空间。
getNamespace(prefix)Namespace获取具有 Element 节点指定前缀的命名空间。
getParentElement()Element获取节点的父 Element 节点。
getQualifiedName()String获取 Element 节点的本地名称和命名空间前缀,格式为 [namespacePrefix]:[localName]
getText()String获取 Element 节点的文本值。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中
isAncestorOf(other)Boolean确定此 Element 节点是给定 Element 节点的直接父节点还是间接父节点。
isRootElement()Boolean确定 Element 节点是否为文档的根节点。
removeAttribute(attribute)Boolean移除此 Element 节点的指定属性(如果存在)。
removeAttribute(attributeName)Boolean移除此 Element 节点具有给定名称但无命名空间的属性,如果 存在这样的属性。
removeAttribute(attributeName, namespace)Boolean移除此 Element 节点具有指定名称和命名空间的属性(如果有) 属性。
removeContent()Content[]删除所有作为 {@code Element} 节点的直接子节点的节点。
removeContent(content)Boolean删除指定节点(如果该节点是 {@code Element} 节点的直接子节点)。
removeContent(index)Content从作为指定索引的所有节点的直接子节点中删除给定索引处的节点 {@code Element} 节点。
setAttribute(attribute)Element为此 Element 节点设置指定属性。
setAttribute(name, value)Element使用给定的名称和值为此 Element 节点设置属性,但不带命名空间。
setAttribute(name, value, namespace)Element使用指定的名称、值和命名空间为此 Element 节点设置属性。
setName(name)Element设置 Element 节点的本地名称。
setNamespace(namespace)Element设置 Element 节点的命名空间。
setText(text)Element设置 Element 节点的文本值。

EntityRef

方法

方法返回类型简介
detach()Content将该节点与其父级 Element 节点分离。
getName()String获取 EntityReference 节点的名称。
getParentElement()Element获取节点的父 Element 节点。
getPublicId()String获取 EntityReference 节点的公共 ID。
getSystemId()String获取 EntityReference 节点的系统 ID。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中
setName(name)EntityRef设置 EntityReference 节点的名称。
setPublicId(id)EntityRef设置 EntityReference 节点的公共 ID。
setSystemId(id)EntityRef设置 EntityReference 节点的系统 ID。

Format

方法

方法返回类型简介
format(document)String将指定的 Document 输出为格式化字符串。
format(element)String将指定的 Element 节点输出为格式化字符串。
setEncoding(encoding)Format设置格式化程序应使用的字符编码。
setIndent(indent)Format设置用于相对于其父节点缩进子节点的字符串。
setLineSeparator(separator)Format设置在格式设置工具正常插入换行符时要插入的字符串。
setOmitDeclaration(omitDeclaration)Format设置格式设置工具是否应省略 XML 声明,例如 <?xml version="1.0" encoding="UTF-8"?>
setOmitEncoding(omitEncoding)Format设置格式设置工具是否应忽略 XML 声明中的编码,例如 <?xml version="1.0" encoding="UTF-8"?> 中的编码字段。

Namespace

方法

方法返回类型简介
getPrefix()String获取命名空间的前缀。
getURI()String获取命名空间的 URI。

ProcessingInstruction

方法

方法返回类型简介
detach()Content将该节点与其父级 Element 节点分离。
getData()String获取 ProcessingInstruction 节点中每条指令的原始数据。
getParentElement()Element获取节点的父 Element 节点。
getTarget()String获取 ProcessingInstruction 节点的目标。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中

Text

方法

方法返回类型简介
append(text)Text将给定文本附加到节点中已存在的任何内容。
detach()Content将该节点与其父级 Element 节点分离。
getParentElement()Element获取节点的父 Element 节点。
getText()String获取 Text 节点的文本值。
getValue()String获取所有作为节点的直接或间接子节点(按顺序排列)的文本值 它们出现在文档中
setText(text)Text设置 Text 节点的文本值。

XmlService

属性

属性类型说明
ContentTypesContentType表示 XML 内容节点类型的枚举。

方法

方法返回类型简介
createCdata(text)Cdata使用指定值创建未附加的 CDATASection 节点。
createComment(text)Comment使用指定值创建未附加的 Comment 节点。
createDocType(elementName)DocType为根 Element 节点创建未附加的 DocumentType 节点 。
createDocType(elementName, systemId)DocType为根 Element 节点创建未附加的 DocumentType 节点 以及外部子集数据的指定系统 ID。
createDocType(elementName, publicId, systemId)DocType为根 Element 节点创建未附加的 DocumentType 节点 以及外部子集数据的指定公共 ID 和系统 ID。
createDocument()Document创建一个空的 XML 文档。
createDocument(rootElement)Document使用指定的根 Element 节点创建 XML 文档。
createElement(name)Element创建具有给定本地名称但无命名空间的未附加 Element 节点。
createElement(name, namespace)Element创建具有给定本地名称和命名空间的未附加 Element 节点。
createText(text)Text使用指定值创建未附加的 Text 节点。
getCompactFormat()Format创建用于输出紧凑 XML 文档的 Format 对象。
getNamespace(uri)Namespace使用指定的 URI 创建 Namespace
getNamespace(prefix, uri)Namespace创建具有给定前缀和 URI 的 Namespace
getNoNamespace()Namespace创建一个表示不存在实际命名空间的 Namespace
getPrettyFormat()Format创建 Format 对象,用于输出直观易懂的 XML 文档。
getRawFormat()Format创建用于输出原始 XML 文档的 Format 对象。
getXmlNamespace()Namespace创建带有标准 xml 前缀的 Namespace
parse(xml)Document根据指定的 XML 创建 Document,而不验证 XML。