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)DocTypeDocumentType 节点设置内部子集数据。
setPublicId(id)DocType设置 DocumentType 节点的外部子集数据的公开 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 节点和外部子集数据创建给定系统 ID 的未连接 DocumentType 节点。
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。