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|null取得屬性的命名空間。
getValue()String取得屬性的值。
setName(name)Attribute設定屬性的本機名稱。
setNamespace(namespace)Attribute設定屬性的命名空間。
setValue(value)Attribute設定屬性的值。

Cdata

方法

方法傳回類型簡短說明
append(text)Text將指定文字附加至節點中現有的任何內容。
detach()Content|null將節點從父項 Element 節點中分離。
getParentElement()Element|null取得節點的父項 Element 節點。
getText()String取得 Text 節點的文字值。
getValue()String取得節點直接或間接子項的所有節點文字值,順序與文件中的顯示順序相同。
setText(text)Text設定 Text 節點的文字值。

Comment

方法

方法傳回類型簡短說明
detach()Content|null將節點從父項 Element 節點中分離。
getParentElement()Element|null取得節點的父項 Element 節點。
getText()String取得 Comment 節點的文字值。
getValue()String取得節點直接或間接子項的所有節點文字值,順序與文件中的顯示順序相同。
setText(text)Comment設定 Comment 節點的文字值。

Content

方法

方法傳回類型簡短說明
asCdata()Cdata|null將節點轉換為 CDATASection 節點,以用於自動完成。
asComment()Comment|null將節點轉換為 Comment 節點,以用於自動完成。
asDocType()DocType|null將節點轉換為 DocumentType 節點,以用於自動完成。
asElement()Element|null將節點轉換為 Element 節點,以用於自動完成。
asEntityRef()EntityRef|null將節點轉換為 EntityReference 節點,以用於自動完成。
asProcessingInstruction()ProcessingInstruction|null將節點轉換為 ProcessingInstruction 節點,以用於自動完成。
asText()Text|null將節點轉換為 Text 節點,以用於自動完成。
detach()Content|null將節點從父項 Element 節點中分離。
getParentElement()Element|null取得節點的父項 Element 節點。
getType()ContentType取得節點的內容類型。
getValue()String取得節點直接或間接子項的所有節點文字值,順序與文件中的顯示順序相同。

ContentType

屬性

屬性類型說明
CDATAEnumXML CDATASection 節點。
COMMENTEnumXML Comment 節點。
DOCTYPEEnumXML DocumentType 節點。
ELEMENTEnumXML Element 節點。
ENTITYREFEnumXML EntityReference 節點。
PROCESSINGINSTRUCTIONEnumXML ProcessingInstruction 節點。
TEXTEnumXML Text 節點。

DocType

方法

方法傳回類型簡短說明
detach()Content|null將節點從父項 Element 節點中分離。
getElementName()String取得 DocType 宣告中指定的根 Element 節點名稱。
getInternalSubset()String取得 DocumentType 節點的內部子集資料。
getParentElement()Element|null取得節點的父項 Element 節點。
getPublicId()String取得 DocumentType 節點的外部子集資料公開 ID。
getSystemId()String取得 DocumentType 節點的外部子集資料系統 ID。
getValue()String取得節點直接或間接子項的所有節點文字值,順序與文件中的顯示順序相同。
setElementName(name)DocType將根 Element 節點的名稱設為在 DocType 宣告中指定的名稱。
setInternalSubset(data)DocType設定 DocumentType 節點的內部子集資料。
setPublicId(id)DocTypeDocumentType 節點設定外部子集資料的公開 ID。
setSystemId(id)DocTypeDocumentType 節點設定外部子集資料的系統 ID。

Document

方法

方法傳回類型簡短說明
addContent(content)Document將指定節點附加至文件結尾。
addContent(index, content)Document在文件中所有直接子項節點中,於指定索引處插入指定節點。
cloneContent()Content[]建立文件中所有節點的未附加副本,這些節點是文件的直接子項。
detachRootElement()Element|null卸離並傳回文件的根 Element 節點。
getAllContent()Content[]取得文件的所有直接子項節點。
getContent(index)Content|null取得文件中所有直接子項節點中,位於指定索引的節點。
getContentSize()Integer取得文件直接子項的節點數量。
getDescendants()Content[]取得文件中所有直接或間接子項節點,並按照節點在文件中出現的順序排列。
getDocType()DocType|null取得文件的 DocType 宣告。
getRootElement()Element|null取得文件的根 Element 節點。
hasRootElement()Boolean判斷文件是否具有根 Element 節點。
removeContent()Content[]移除文件的所有直接子項節點。
removeContent(content)Boolean如果節點是文件的直接子項,則移除該節點。
removeContent(index)Content|null從文件中所有直接子項節點中,移除指定索引處的節點。
setDocType(docType)Document設定文件的 DocType 宣告。
setRootElement(element)Document設定文件的根 Element 節點。

Element

方法

方法傳回類型簡短說明
addContent(content)Element將指定節點附加為 Element 節點的最後一個子項。
addContent(index, content)ElementElement 節點的所有直接子項節點中,於指定索引處插入指定節點。
cloneContent()Content[]建立 {@code Element} 節點所有直接子項的未附加副本。
detach()Content|null將節點從父項 Element 節點中分離。
getAllContent()Content[]取得 {@code Element} 節點的所有直接子項節點。
getAttribute(name)Attribute|null取得這個 Element 節點的屬性,該屬性具有指定名稱,且沒有命名空間。
getAttribute(name, namespace)Attribute|null取得這個 Element 節點的屬性,並提供名稱和命名空間。
getAttributes()Attribute[]取得這個 Element 節點的所有屬性,順序與文件中的顯示順序相同。
getChild(name)Element|null取得具有指定名稱且沒有命名空間的第一個 Element 節點,該節點是這個 Element 節點的直接子項。
getChild(name, namespace)Element|null取得具有指定名稱和命名空間的第一個 Element 節點,該節點是這個 Element 節點的直接子項。
getChildText(name)String|null如果節點是 Element 節點的直接子項,則會取得指定名稱且沒有命名空間的節點文字值。
getChildText(name, namespace)String|null如果節點是 Element 節點的直接子項,則會取得具有指定名稱和命名空間的節點文字值。
getChildren()Element[]取得這個 Element 節點的所有直接子項 Element 節點,順序與文件中的顯示順序相同。
getChildren(name)Element[]取得具有指定名稱且沒有命名空間的所有 Element 節點,這些節點是這個 Element 節點的直接子項,且順序與文件中顯示的順序相同。
getChildren(name, namespace)Element[]取得具有指定名稱和命名空間的所有 Element 節點,這些節點是這個 Element 節點的直接子項,且順序與文件中顯示的順序相同。
getContent(index)Content|null在 {@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|null取得節點的父項 Element 節點。
getQualifiedName()String[namespacePrefix]:[localName] 形式取得 Element 節點的本機名稱和命名空間前置字元。
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|null從 {@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|null將節點從父項 Element 節點中分離。
getName()String取得 EntityReference 節點的名稱。
getParentElement()Element|null取得節點的父項 Element 節點。
getPublicId()String|null取得 EntityReference 節點的公開 ID。
getSystemId()String|null取得 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|null將節點從父項 Element 節點中分離。
getData()String取得 ProcessingInstruction 節點中每項指令的原始資料。
getParentElement()Element|null取得節點的父項 Element 節點。
getTarget()String取得 ProcessingInstruction 節點的目標。
getValue()String取得節點直接或間接子項的所有節點文字值,順序與文件中的顯示順序相同。

Text

方法

方法傳回類型簡短說明
append(text)Text將指定文字附加至節點中現有的任何內容。
detach()Content|null將節點從父項 Element 節點中分離。
getParentElement()Element|null取得節點的父項 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建立 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。