Class XmlService

XmlService

このサービスを使用すると、スクリプトで XML ドキュメントの解析、ナビゲーション、プログラムによる作成を行うことができます。

// Log the title and labels for the first page of blog posts on the
// Google Workspace Developer blog.
function parseXml() {
  const url = 'https://gsuite-developers.googleblog.com/atom.xml';
  const xml = UrlFetchApp.fetch(url).getContentText();
  const document = XmlService.parse(xml);
  const root = document.getRootElement();
  const atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');

  const entries = root.getChildren('entry', atom);
  for (let i = 0; i < entries.length; i++) {
    const title = entries[i].getChild('title', atom).getText();
    const categoryElements = entries[i].getChildren('category', atom);
    const labels = [];
    for (let j = 0; j < categoryElements.length; j++) {
      labels.push(categoryElements[j].getAttribute('term').getValue());
    }
    Logger.log('%s (%s)', title, labels.join(', '));
  }
}

// Create and log an XML representation of the threads in your Gmail inbox.
function createXml() {
  const root = XmlService.createElement('threads');
  const threads = GmailApp.getInboxThreads();
  for (let i = 0; i < threads.length; i++) {
    const child =
        XmlService.createElement('thread')
            .setAttribute('messageCount', threads[i].getMessageCount())
            .setAttribute('isUnread', threads[i].isUnread())
            .setText(threads[i].getFirstMessageSubject());
    root.addContent(child);
  }
  const document = XmlService.createDocument(root);
  const xml = XmlService.getPrettyFormat().format(document);
  Logger.log(xml);
}

プロパティ

プロパティタイプ説明
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 の検証は行いません。

詳細なドキュメント

createCdata(text)

指定された値で、アタッチされていない CDATASection ノードを作成します。

パラメータ

名前説明
textString設定する値。

戻る

Cdata - 新しく作成された CDATASection ノード。


createComment(text)

指定された値で、アタッチされていない Comment ノードを作成します。

パラメータ

名前説明
textString設定する値。

戻る

Comment - 新しく作成された Comment ノード。


createDocType(elementName)

指定された名前のルート Element ノードに対して、アタッチされていない DocumentType ノードを作成します。

パラメータ

名前説明
elementNameStringDocType 宣言で指定するルート Element ノードの名前。

戻る

DocType - 新しく作成された DocumentType ノード。


createDocType(elementName, systemId)

指定された名前と、外部サブセット データの指定されたシステム ID を持つルート Element ノードの、未接続の DocumentType ノードを作成します。

パラメータ

名前説明
elementNameStringDocType 宣言で指定するルート Element ノードの名前。
systemIdString設定する外部サブセット データのシステム ID。

戻る

DocType - 新しく作成された DocumentType ノード。


createDocType(elementName, publicId, systemId)

指定された名前、指定された公開 ID、外部サブセット データのシステム ID を持つルート Element ノードの未接続の DocumentType ノードを作成します。

パラメータ

名前説明
elementNameStringDocType 宣言で指定するルート Element ノードの名前。
publicIdString設定する外部サブセット データの公開 ID。
systemIdString設定する外部サブセット データのシステム ID。

戻る

DocType - 新しく作成された DocumentType ノード。


createDocument()

空の XML ドキュメントを作成します。

戻る

Document - 新しく作成されたドキュメント。


createDocument(rootElement)

指定されたルート Element ノードで XML ドキュメントを作成します。

パラメータ

名前説明
rootElementElement設定するルート Element ノード。

戻る

Document - 新しく作成されたドキュメント。


createElement(name)

指定されたローカル名で、Namespace を持たない未接続の Element ノードを作成します。

パラメータ

名前説明
nameString設定するローカル名。

戻る

Element - 新しく作成された Element ノード。


createElement(name, namespace)

指定されたローカル名と Namespace を持つ、未接続の Element ノードを作成します。

パラメータ

名前説明
nameString設定するローカル名。
namespaceNamespace設定する Namespace。

戻る

Element - 新しく作成された Element ノード。


createText(text)

指定された値で、アタッチされていない Text ノードを作成します。

パラメータ

名前説明
textString設定する値。

戻る

Text - 新しく作成された Text ノード。


getCompactFormat()

コンパクトな XML ドキュメントを出力するための Format オブジェクトを作成します。フォーマッタのデフォルトは UTF-8 エンコードで、インデントや追加の改行はありませんが、XML 宣言とそのエンコードが含まれます。

// Log an XML document in compact form.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getCompactFormat().format(document);
Logger.log(output);

戻る

Format - 新しく作成されたフォーマッタ。


getNamespace(uri)

指定された URI で Namespace を作成します。

パラメータ

名前説明
uriString名前空間の URI。

戻る

Namespace - 新しく作成された Namespace。


getNamespace(prefix, uri)

指定された接頭辞と URI で Namespace を作成します。

パラメータ

名前説明
prefixStringNamespace の接頭辞。
uriString名前空間の URI。

戻る

Namespace - 新しく作成された Namespace。


getNoNamespace()

実際の Namespace が存在しないことを表す Namespace を作成します。

戻る

Namespace - 新しく作成された Namespace。


getPrettyFormat()

人間が読める形式の XML ドキュメントを出力するための Format オブジェクトを作成します。フォーマッタのデフォルトは、UTF-8 エンコード、2 スペースのインデント、各ノード後の \r\n 行区切り文字です。また、XML 宣言とそのエンコードも含まれます。

// Log an XML document in human-readable form.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getPrettyFormat().format(document);
Logger.log(output);

戻る

Format - 新しく作成されたフォーマッタ。


getRawFormat()

未加工の XML ドキュメントを出力するための Format オブジェクトを作成します。フォーマッタのデフォルトは UTF-8 エンコードで、インデントと XML ドキュメント自体で指定されたもの以外の改行はありません。また、XML 宣言とそのエンコードが含まれます。

// Log an XML document in raw form.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getRawFormat().format(document);
Logger.log(output);

戻る

Format - 新しく作成されたフォーマッタ。


getXmlNamespace()

標準の xml 接頭辞を使用して Namespace を作成します。

戻る

Namespace - 新しく作成された Namespace。


parse(xml)

XML を検証せずに、指定された XML から Document を作成します。

const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const doc = XmlService.parse(xml);

パラメータ

名前説明
xmlString解析する XML。

戻る

Document - 新しく作成されたドキュメント。