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)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 节点以及未包含外部子集数据的给定公共 ID 和系统 ID 创建未附加的 DocumentType 节点。
createDocument()Document创建空 XML 文档。
createDocument(rootElement)Document创建具有指定根 Element 节点的 XML 文档。
createElement(name)Element创建具有指定本地名称但没有命名空间的未附加 Element 节点。
createElement(name, namespace)Element创建具有给定本地名称和命名空间的未附加 Element 节点。
createText(text)Text创建具有指定值的未附加 Text 节点。
getCompactFormat()Format创建一个 Format 对象,用于输出紧凑的 XML 文档。
getNamespace(uri)Namespace创建具有指定 URI 的 Namespace
getNamespace(prefix, uri)Namespace创建具有给定前缀和 URI 的 Namespace
getNoNamespace()Namespace创建表示不存在实际命名空间的 Namespace
getPrettyFormat()Format创建一个 Format 对象,用于输出便于用户理解的 XML 文档。
getRawFormat()Format创建一个 Format 对象,用于输出原始 XML 文档。
getXmlNamespace()Namespace创建带有标准 xml 前缀的 Namespace
parse(xml)Document根据给定的 XML 创建 Document,不验证 XML。