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 ノードの表現。
FormatXML ドキュメントを出力するためのフォーマッタ。さらにカスタマイズできる 3 つの事前定義済み形式が存在します。
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

プロパティ

プロパティ種類説明
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[]{@code Element} ノードの直接の子であるすべてのノードを取得します。
getAttribute(name)Attribute指定された名前と名前空間を持たないこの Element ノードの属性を取得します。
getAttribute(name, namespace)Attribute指定された名前と Namespace を使用して、この Element ノードの属性を取得します。
getAttributes()Attribute[]この Element ノードのすべての属性を、ドキュメントに表示されている順序で取得します。
getChild(name)Element指定された名前で、この Element ノードの直接の子である名前空間を持たない最初の Element ノードを取得します。
getChild(name, namespace)Element指定された名前と Namespace が、この Element ノードの直接の子である最初の Element ノードを取得します。
getChildText(name)Stringノードが Element ノードの直接の子である場合、指定された名前を持つ名前空間なしのノードのテキスト値を取得します。
getChildText(name, namespace)Stringノードが Element ノードの直接の子である場合、指定された名前と名前空間を持つノードのテキスト値を取得します。
getChildren()Element[]この Element ノードの直接の子であるすべての Element ノードを、ドキュメントに表示されている順序で取得します。
getChildren(name)Element[]指定された名前を持ち、この Element ノードの直接の子である名前空間がないすべての Element ノードを、ドキュメントに表示されている順序で取得します。
getChildren(name, namespace)Element[]指定された名前と Namespace を持つ、この Element ノードの直接の子である Element ノードをすべて、ドキュメントに表示されている順序で取得します。
getContent(index)Content{@code Element} ノードの直接の子であるすべてのノードのうち、指定されたインデックスにあるノードを取得します。
getContentSize()Integer{@code Element} ノードの直接の子であるノードの数を取得します。
getDescendants()Content[]{@code Element} ノードの直接または間接の子であるすべてのノードを、ドキュメントに表示されている順序で取得します。
getDocument()Document{@code Element} ノードを含む 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指定された名前と Namespace を持つこの Element ノードの属性が存在する場合は、それらを削除します。
removeContent()Content[]{@code Element} ノードの直接の子であるノードをすべて削除します。
removeContent(content)Boolean指定されたノードが {@code Element} ノードの直接の子である場合、そのノードを削除します。
removeContent(index)Content{@code Element} ノードの直接の子であるすべてのノードのうち、指定されたインデックスにあるノードを削除します。
setAttribute(attribute)Elementこの Element ノードの指定された属性を設定します。
setAttribute(name, value)Element指定された名前、値で、Namespace は設定せずに、この Element ノードの属性を設定します。
setAttribute(name, value, namespace)Element指定された名前、値、Namespace を使用して、この 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 version="1.0" encoding="UTF-8"?> などの XML 宣言を省略するかどうかを設定します。
setOmitEncoding(omitEncoding)Formatフォーマッタが XML 宣言のエンコード(<?xml version="1.0" encoding="UTF-8"?> のエンコード フィールドなど)を省略するかどうかを設定します。

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

プロパティ

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

Methods

メソッド戻り値の型概要
createCdata(text)Cdata指定された値で、接続されていない CDATASection ノードを作成します。
createComment(text)Comment指定された値で、接続されていない Comment ノードを作成します。
createDocType(elementName)DocType指定された名前でルート Element ノード用に未接続の DocumentType ノードを作成します。
createDocType(elementName, systemId)DocType指定された名前と外部のサブセット データ用に指定されたシステム ID で、ルート Element ノード用に接続されていない 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指定されたローカル名と Namespace で接続されていない 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)Document指定された XML から、XML を検証せずに Document を作成します。