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属性の名前空間を取得します。
getValue()String属性の値を取得します。
setName(name)Attribute属性のローカル名を設定します。
setNamespace(namespace)Attribute属性の名前空間を設定します。
setValue(value)Attribute属性の値を設定します。

Cdata

メソッド

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

Comment

メソッド

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

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()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

メソッド

メソッド戻り値の型概要
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 ノードの直下の子ノードである Namespace のない最初の 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{@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ノードの親 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{@code Element} ノードの直接の子であるすべてのノードのうち、指定したインデックスのノードを削除します。
setAttribute(attribute)Elementこの Element ノードに指定された属性を設定します。
setAttribute(name, value)Element指定された名前と値で、この Element ノードの属性を設定し、名前空間は設定しません。
setAttribute(name, value, namespace)Element指定された名前、値、Namespace を使用して、この Element ノードの属性を設定します。
setName(name)ElementElement ノードのローカル名を設定します。
setNamespace(namespace)ElementElement ノードの Namespace を設定します。
setText(text)ElementElement ノードのテキスト値を設定します。

EntityRef

メソッド

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

メソッド

メソッド戻り値の型概要
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()StringNamespace の URI を取得します。

ProcessingInstruction

メソッド

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

Text

メソッド

メソッド戻り値の型概要
append(text)Text指定されたテキストを、ノード内にすでに存在するコンテンツに追加します。
detach()Contentノードを親の Element ノードから切断します。
getParentElement()Elementノードの親 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指定された名前のルート Element ノードと、外部サブセット データの指定されたシステム ID を持つ、接続されていない DocumentType ノードを作成します。
createDocType(elementName, publicId, systemId)DocType指定された名前のルート Element ノードと、外部サブセット データの指定された公開 ID とシステム ID を持つ、接続されていない 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 を作成します。
getPrettyFormat()Format人間が読み取れる XML ドキュメントを出力するための Format オブジェクトを作成します。
getRawFormat()Format未加工の XML ドキュメントを出力する Format オブジェクトを作成します。
getXmlNamespace()Namespace標準の xml 接頭辞を使用して Namespace を作成します。
parse(xml)DocumentXML を検証せずに、指定された XML から Document を作成します。