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 節點直系子項的所有 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建立 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。