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 ノードの表現。
ContentTypeXML コンテンツ ノードのタイプを表す列挙型。
DocTypeXML の DocumentType ノードの表現。
DocumentXML ドキュメントの表現。
ElementXML の Element ノードの表現。
EntityRefXML の EntityReference ノードの表現。
Format事前定義された 3 つの形式を持ち、さらにカスタマイズできる XML ドキュメントを出力するフォーマッタ。
NamespaceXML 名前空間の表現。
ProcessingInstructionXML の ProcessingInstruction ノードの表現。
TextXML の Text ノードの表現。
XmlServiceこのサービスにより、スクリプトは XML ドキュメントの解析、移動、プログラムによる作成を行うことができます。

Attribute

Methods

方法戻り値の型概要
getName()String属性のローカル名を取得します。
getNamespace()Namespace属性の名前空間を取得します。
getValue()String属性の値を取得します。
setName(name)Attribute属性のローカル名を設定します。
setNamespace(namespace)Attribute属性の名前空間を設定します。
setValue(value)Attribute属性の値を設定します。

Cdata

Methods

方法戻り値の型概要
append(text)Text指定されたテキストを、ノードにすでに存在するコンテンツに追加します。
detach()Contentノードを親 Element ノードから切断します。
getParentElement()Elementノードの親 Element ノードを取得します。
getText()StringText ノードのテキスト値を取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。
setText(text)TextText ノードのテキスト値を設定します。

Comment

Methods

方法戻り値の型概要
detach()Contentノードを親 Element ノードから切断します。
getParentElement()Elementノードの親 Element ノードを取得します。
getText()StringComment ノードのテキスト値を取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。
setText(text)CommentComment ノードのテキスト値を設定します。

Content

Methods

方法戻り値の型概要
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

Properties

プロパティ種類説明
CDATAEnumXML CDATASection ノード。
COMMENTEnumXML Comment ノード。
DOCTYPEEnumXML DocumentType ノード。
ELEMENTEnumXML Element ノード。
ENTITYREFEnumXML EntityReference ノード。
PROCESSINGINSTRUCTIONEnumXML ProcessingInstruction ノード。
TEXTEnumXML Text ノード。

DocType

Methods

方法戻り値の型概要
detach()Contentノードを親 Element ノードから切断します。
getElementName()StringDocType 宣言で指定されたルート Element ノードの名前を取得します。
getInternalSubset()StringDocumentType ノードの内部サブセット データを取得します。
getParentElement()Elementノードの親 Element ノードを取得します。
getPublicId()StringDocumentType ノードの外部サブセット データの公開 ID を取得します。
getSystemId()StringDocumentType ノードの外部サブセット システムのシステム ID を取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。
setElementName(name)DocTypeDocType 宣言で指定するルート Element ノードの名前を設定します。
setInternalSubset(data)DocTypeDocumentType ノードの内部サブセット データを設定します。
setPublicId(id)DocTypeDocumentType ノードの外部サブセット データの公開 ID を設定します。
setSystemId(id)DocTypeDocumentType ノードの外部サブセット データのシステム ID を設定します。

Document

Methods

方法戻り値の型概要
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

Methods

方法戻り値の型概要
addContent(content)Element指定されたノードを Element ノードの最後の子として追加します。
addContent(index, content)ElementElement ノードの直接的な子であるすべてのノード間で、指定されたインデックスにある特定のノードを挿入します。
cloneContent()Content[]{code Element} ノードの直接の子であるすべてのノードの非接続コピーを作成します。
detach()Contentノードを親 Element ノードから切断します。
getAllContent()Content[]{2/}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指定されたインデックスを持つノードを、{2/}code Element} ノードの直接の子であるすべてのノードの中で取得します。
getContentSize()Integer{2/}code Element} ノードの直接の子であるノードの数を取得します。
getDescendants()Content[]@code Element} ノードの直接または間接の子であるすべてのノードを、ドキュメントに表示される順序で取得します。
getDocument()Document@code 要素} ノードを含む XML ドキュメントを取得します。
getName()StringElement ノードのローカル名を取得します。
getNamespace()NamespaceElement ノードの名前空間を取得します。
getNamespace(prefix)NamespaceElement ノードに指定された接頭辞を持つ名前空間を取得します。
getParentElement()Elementノードの親 Element ノードを取得します。
getQualifiedName()StringElement ノードのローカル名と名前空間接頭辞を [namespacePrefix]:[localName] 形式で取得します。
getText()StringElement ノードのテキスト値を取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。
isAncestorOf(other)Booleanこの Element ノードが特定の Element ノードの直接の親か間接的な親かを判断します。
isRootElement()BooleanElement ノードがドキュメントのルートノードであるかどうかを判別します。
removeAttribute(attribute)Booleanこの Element ノードの指定された属性が存在する場合は、その属性を削除します。
removeAttribute(attributeName)Boolean指定された名前を持ち、名前空間がない、この Element ノードの属性を削除します(そのような属性が存在する場合)。
removeAttribute(attributeName, namespace)Boolean指定された名前と名前空間を持つこの Element ノードの属性を削除します(存在する場合)。
removeContent()Content[]@code 要素} ノードの直接の子であるすべてのノードを削除します。
removeContent(content)Booleanノードが {2/}code Element} ノードの直接の子である場合、そのノードを削除します。
removeContent(index)Content指定されたコードにあるノードを、{2/}code Element} ノードの直接の子であるすべてのノードから削除します。
setAttribute(attribute)Elementこの Element ノードの指定された属性を設定します。
setAttribute(name, value)Elementこの Element ノードの属性を、指定された名前、値、名前空間なしに設定します。
setAttribute(name, value, namespace)Elementこの Element ノードの属性を指定された名前、値、名前空間で設定します。
setName(name)ElementElement ノードのローカル名を設定します。
setNamespace(namespace)ElementElement ノードの名前空間を設定します。
setText(text)ElementElement ノードのテキスト値を設定します。

EntityRef

Methods

方法戻り値の型概要
detach()Contentノードを親 Element ノードから切断します。
getName()StringEntityReference ノードの名前を取得します。
getParentElement()Elementノードの親 Element ノードを取得します。
getPublicId()StringEntityReference ノードのパブリック ID を取得します。
getSystemId()StringEntityReference ノードのシステム ID を取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。
setName(name)EntityRefEntityReference ノードの名前を設定します。
setPublicId(id)EntityRefEntityReference ノードの公開 ID を設定します。
setSystemId(id)EntityRefEntityReference ノードのシステム ID を設定します。

Format

Methods

方法戻り値の型概要
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 version="1.0" encoding="UTF-8"?> のエンコード フィールドなど、XML 宣言のエンコードをフォーマッタを省略するかどうかを設定します。

Namespace

Methods

方法戻り値の型概要
getPrefix()String名前空間の接頭辞を取得します。
getURI()String名前空間の URI を取得します。

ProcessingInstruction

Methods

方法戻り値の型概要
detach()Contentノードを親 Element ノードから切断します。
getData()StringProcessingInstruction ノード内のすべての命令の元データを取得します。
getParentElement()Elementノードの親 Element ノードを取得します。
getTarget()StringProcessingInstruction ノードのターゲットを取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。

Text

Methods

方法戻り値の型概要
append(text)Text指定されたテキストを、ノードにすでに存在するコンテンツに追加します。
detach()Contentノードを親 Element ノードから切断します。
getParentElement()Elementノードの親 Element ノードを取得します。
getText()StringText ノードのテキスト値を取得します。
getValue()Stringノードの直接または間接の子であるすべてのノードのテキスト値を、ドキュメントに表示される順序で取得します。
setText(text)TextText ノードのテキスト値を設定します。

XmlService

Properties

プロパティ種類説明
ContentTypesContentTypeXML コンテンツ ノードのタイプを表す列挙型。

Methods

方法戻り値の型概要
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 がないことを表す Namespace を作成します。
getPrettyFormat()Format人が読める形式の XML ドキュメントを出力するための Format オブジェクトを作成します。
getRawFormat()Format未加工の XML ドキュメントを出力する Format オブジェクトを作成します。
getXmlNamespace()Namespace標準の xml 接頭辞を持つ Namespace を作成します。
parse(xml)DocumentXML を検証せずに、指定された XML から Document を作成します。