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

メソッド

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

Cdata

メソッド

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

Comment

メソッド

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

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()StringDocType 宣言で指定されたルート Element ノードの名前を取得します。
getInternalSubset()StringDocumentType ノードの内部サブセット データを取得します。
getParentElement()Element|nullノードの親 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

メソッド

メソッド戻り値の型概要
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指定された名前を持ち、Namespace がなく、この 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 ノードの直下の子である、指定された名前と Namespace を持つすべての Element ノードを、ドキュメントに現れる順序で取得します。
getContent(index)Content|null{@code Element} ノードの直接の子であるすべてのノードのうち、指定されたインデックスにあるノードを取得します。
getContentSize()Integer{@code Element} ノードの直接の子であるノードの数を取得します。
getDescendants()Content[]{@code Element} ノードの直接または間接の子であるすべてのノードを、ドキュメントに表示される順序で取得します。
getDocument()Document{@code Element} ノードを含む XML ドキュメントを取得します。
getName()StringElement ノードのローカル名を取得します。
getNamespace()NamespaceElement ノードの Namespace を取得します。
getNamespace(prefix)NamespaceElement ノードの指定された接頭辞を持つ名前空間を取得します。
getParentElement()Element|nullノードの親 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 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)ElementElement ノードのローカル名を設定します。
setNamespace(namespace)ElementElement ノードの Namespace を設定します。
setText(text)ElementElement ノードのテキスト値を設定します。

EntityRef

メソッド

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

Format

メソッド

メソッド戻り値の型概要
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

メソッド

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

ProcessingInstruction

メソッド

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

Text

メソッド

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

XmlService

プロパティ

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

メソッド

メソッド戻り値の型概要
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指定された名前、指定された公開 ID、外部サブセット データのシステム ID を持つルート Element ノードの未接続の DocumentType ノードを作成します。
createDocument()Document空の XML ドキュメントを作成します。
createDocument(rootElement)Document指定されたルート Element ノードで XML ドキュメントを作成します。
createElement(name)Element指定されたローカル名で、Namespace を持たない未接続の 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 から Document を作成します。XML の検証は行いません。