Class XmlService

XmlService

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

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

  var entries = root.getChildren('entry', atom);
  for (var i = 0; i < entries.length; i++) {
    var title = entries[i].getChild('title', atom).getText();
    var categoryElements = entries[i].getChildren('category', atom);
    var labels = [];
    for (var 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() {
  var root = XmlService.createElement('threads');
  var threads = GmailApp.getInboxThreads();
  for (var i = 0; i < threads.length; i++) {
    var child = XmlService.createElement('thread')
        .setAttribute('messageCount', threads[i].getMessageCount())
        .setAttribute('isUnread', threads[i].isUnread())
        .setText(threads[i].getFirstMessageSubject());
    root.addContent(child);
  }
  var document = XmlService.createDocument(root);
  var xml = XmlService.getPrettyFormat().format(document);
  Logger.log(xml);
}

プロパティ

プロパティ種類説明
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 を作成します。

詳細なドキュメント

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)

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

パラメータ

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

リターン

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


createDocument()

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

リターン

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


createDocument(rootElement)

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

パラメータ

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

リターン

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


createElement(name)

指定されたローカル名で名前空間のない、接続されていない 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.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var 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.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getPrettyFormat()
    .format(document);
Logger.log(output);

リターン

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


getRawFormat()

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

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

リターン

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


getXmlNamespace()

標準の xml 接頭辞が付いた Namespace を作成します。

リターン

Namespace - 新しく作成された Namespace


parse(xml)

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

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

パラメータ

名前説明
xmlString解析する XML を

リターン

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